diff options
author | Andrei <andrei.elkin@mariadb.com> | 2022-05-11 13:12:48 +0300 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2022-05-18 09:48:57 +0200 |
commit | 98ca71ab28fffbb65c4590cda904f1f0dfd975bb (patch) | |
tree | ca5328fabb095485459669c8ecaa4450b821e120 /sql/debug.cc | |
parent | e03e72234aa59016c71c51b7adc5a59ae7b126b2 (diff) | |
download | mariadb-git-98ca71ab28fffbb65c4590cda904f1f0dfd975bb.tar.gz |
MDEV-28461 semisync-slave server recovery fails to rollback prepared transaction
that is not in binlog.
Post-crash recovery of --rpl-semi-sync-slave-enabled server
failed to recognize a transaction in-doubt that needed rolled back.
A prepared-but-not-in-binlog transaction gets committed instead
to possibly create inconsistency with a master (e.g the way it was observed
in the bug report).
The semisync recovery is corrected now with initializing binlog coordinates
of any transaction in-doubt to the maximum offset which is
unreachable.
In effect when a prepared transaction that is not found in binlog
it will be decided to rollback because it's guaranteed to reside
in a truncated tail area of binlog.
Mtr tests are reinforced to cover the described scenario.
Diffstat (limited to 'sql/debug.cc')
0 files changed, 0 insertions, 0 deletions