diff --git a/dbsim/db_server_service.cpp b/dbsim/db_server_service.cpp index 4fbc6667..13df10e8 100644 --- a/dbsim/db_server_service.cpp +++ b/dbsim/db_server_service.cpp @@ -145,7 +145,8 @@ wsrep::gtid db::server_service::get_position(wsrep::client_service&) } void db::server_service::set_position(wsrep::client_service&, - const wsrep::gtid& gtid) + const wsrep::gtid& gtid, + bool) { return server_.storage_engine().store_position(gtid); } diff --git a/dbsim/db_server_service.hpp b/dbsim/db_server_service.hpp index e5cd70d2..55144de2 100644 --- a/dbsim/db_server_service.hpp +++ b/dbsim/db_server_service.hpp @@ -53,7 +53,7 @@ namespace db wsrep::view get_view(wsrep::client_service&, const wsrep::id&) override; wsrep::gtid get_position(wsrep::client_service&) override; - void set_position(wsrep::client_service&, const wsrep::gtid&) override; + void set_position(wsrep::client_service&, const wsrep::gtid&, bool) override; void log_state_change(enum wsrep::server_state::state, enum wsrep::server_state::state) override; int wait_committing_transactions(int) override; diff --git a/include/wsrep/server_service.hpp b/include/wsrep/server_service.hpp index c7171f2d..54f07051 100644 --- a/include/wsrep/server_service.hpp +++ b/include/wsrep/server_service.hpp @@ -190,7 +190,8 @@ namespace wsrep */ virtual void set_position( wsrep::client_service& client_service, - const wsrep::gtid& gtid) = 0; + const wsrep::gtid& gtid, + bool aborted) = 0; /** * Log a state change event. diff --git a/src/transaction.cpp b/src/transaction.cpp index 37dc0d12..5618d50c 100644 --- a/src/transaction.cpp +++ b/src/transaction.cpp @@ -760,7 +760,8 @@ int wsrep::transaction::release_commit_order( lock.lock(); if (!ret) { - server_service_.set_position(client_service_, ws_meta_.gtid()); + server_service_.set_position(client_service_, ws_meta_.gtid(), + (state() == s_aborted)); ret = provider().commit_order_leave(ws_handle_, ws_meta_, apply_error_buf_); } diff --git a/test/mock_server_state.hpp b/test/mock_server_state.hpp index 730c9c04..8be8774d 100644 --- a/test/mock_server_state.hpp +++ b/test/mock_server_state.hpp @@ -158,7 +158,8 @@ namespace wsrep } void set_position(wsrep::client_service&, - const wsrep::gtid& gtid) WSREP_OVERRIDE + const wsrep::gtid& gtid, + bool) WSREP_OVERRIDE { position_ = gtid; }