1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-11-01 17:51:06 +03:00

Fixes to streaming rollback.

* Check error code from fragment release
* Always call streaming rollback from must abort if the
  transaction is in executing phase. This is needed to ensure
  that rollback fragment replication happens before rollback starts
* Initiate streaming rollback from certify fragment if BF abort
  happens after fragment certification.
This commit is contained in:
Teemu Ollakka
2018-07-19 01:11:02 +03:00
parent ca5c24655f
commit 0410deee3a
2 changed files with 29 additions and 11 deletions

View File

@@ -67,7 +67,6 @@ int wsrep::client_state::before_command()
{
wsrep::unique_lock<wsrep::mutex> lock(mutex_);
debug_log_state("before_command: enter");
store_globals(); // Marks the control for this thread
assert(state_ == s_idle);
if (transaction_.active() &&
server_state_.rollback_mode() == wsrep::server_state::rm_sync)
@@ -77,6 +76,7 @@ int wsrep::client_state::before_command()
cond_.wait(lock);
}
}
store_globals(); // Marks the control for this thread
state(lock, s_exec);
assert(transaction_.active() == false ||
(transaction_.state() == wsrep::transaction::s_executing ||