diff options
author | Daniele Sciascia <daniele.sciascia@galeracluster.com> | 2020-01-14 06:33:02 +0100 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2020-01-14 07:33:02 +0200 |
commit | 2d4b6571ecf15a4382702d26df9439bc5a1005de (patch) | |
tree | 93e9913ca4610bd7e69ca23a59e10d3339bad4cb /sql/wsrep_server_service.cc | |
parent | 983163209d026bfd979b4298053fcbdb373efa9d (diff) | |
download | mariadb-git-2d4b6571ecf15a4382702d26df9439bc5a1005de.tar.gz |
Wsrep position not updated in InnoDB after certification failures (#1432)
A certification failure followed by a clean shutdown would cause an
inconsistency between the sequence number stored in innodb and the
sequence number stored in provider.
This happened both in the case of local certification failure, and in
the case where dummy writeset is applied.
The fix consists of:
- updating wsrep position after dummy writeset is delivered in
`Wsrep_high_priority_service::log_dummy_write_set()`
- updating wsrep position while releasing commit order in wsrep-lib
side
Added two tests which stress the situation where a server is shutdown
after a certification failure.
Diffstat (limited to 'sql/wsrep_server_service.cc')
-rw-r--r-- | sql/wsrep_server_service.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/wsrep_server_service.cc b/sql/wsrep_server_service.cc index aa288e67420..d0a9b54ac1b 100644 --- a/sql/wsrep_server_service.cc +++ b/sql/wsrep_server_service.cc @@ -302,6 +302,12 @@ wsrep::gtid Wsrep_server_service::get_position(wsrep::client_service&) return wsrep_get_SE_checkpoint(); } +void Wsrep_server_service::set_position(wsrep::client_service&, + const wsrep::gtid& gtid) +{ + wsrep_set_SE_checkpoint(gtid); +} + void Wsrep_server_service::log_state_change( enum Wsrep_server_state::state prev_state, enum Wsrep_server_state::state current_state) |