mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-07-28 20:02:00 +03:00
After applying call, BF abort fixes
* Added after applying call for high priority threads in order to avoid client mode complexity in after_statement() call and make high prio transaction cleanup possible * Mask connection failed error with deadlock error if provider returns connection failed and the transaction was BF aborted
This commit is contained in:
@ -246,6 +246,15 @@ namespace wsrep
|
||||
enum after_statement_result after_statement();
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* Perform cleanup after applying a transaction.
|
||||
*/
|
||||
void after_applying()
|
||||
{
|
||||
assert(mode_ == m_high_priority);
|
||||
transaction_.after_applying();
|
||||
}
|
||||
|
||||
/** @name Replication interface */
|
||||
/** @{ */
|
||||
/**
|
||||
|
@ -113,8 +113,14 @@ namespace wsrep
|
||||
|
||||
int after_statement();
|
||||
|
||||
void after_applying();
|
||||
|
||||
bool bf_abort(wsrep::unique_lock<wsrep::mutex>& lock,
|
||||
wsrep::seqno bf_seqno);
|
||||
bool bf_aborted() const
|
||||
{
|
||||
return (bf_abort_client_state_ != 0);
|
||||
}
|
||||
|
||||
int flags() const
|
||||
{
|
||||
@ -145,6 +151,7 @@ namespace wsrep
|
||||
enum state state_;
|
||||
std::vector<enum state> state_hist_;
|
||||
enum state bf_abort_state_;
|
||||
enum wsrep::provider::status bf_abort_provider_status_;
|
||||
int bf_abort_client_state_;
|
||||
wsrep::ws_handle ws_handle_;
|
||||
wsrep::ws_meta ws_meta_;
|
||||
|
Reference in New Issue
Block a user