Details
-
Bug
-
Status: Stalled (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.5
Description
This task is ensued by MDEV-742 and implements the upstream's Bug#76233
In fact there's no issue in the ordering of logging of XA PREPARE into the binary log and transaction preparing in Engine. The chosen by upstream method of the logging goes first is not really incorrect but just needs
some refinement of the server recovery.
So in case the server crashes having XA-prepared "transaction" binlogged but not yet
prepared in Engine, its next recovery must be augmented with identifying the XA-prepared's events in the binlog and resubmitting the transaction for preparing in Engine.
XA-COMMIT or XA-ROLLBACK are logged compatibly with XA-PREPARE and therefore
a similar issue arises when the server crashes after binary logging but before actual transaction completion in Engine. The same technique must be used to identify and resubmit to commit-or-rollback.
Attachments
Issue Links
- causes
-
MDEV-34526 Mariadb crashed and replication got broken after MariaDB services came up
- Closed
- relates to
-
MDEV-26652 xa transactions binlogged in wrong order
- Stalled
-
MDEV-29642 Server Crash During XA Prepare Can Break Replication
- Closed
-
MDEV-31921 Replication Breaks after Recovering a Prepared-but-not-binlogged XA ONE PHASE Transaction
- Open
-
MDEV-31949 slow parallel replication of user xa
- Stalled
-
MDEV-742 LP:803649 - Xa recovery failed on client disconnection
- Closed
-
MDEV-18959 Engine transaction recovery through persistent binlog
- Stalled
-
MDEV-31998 XA PREPARE should do binlog_prepare last
- Open
- split to
-
MDEV-21777 Implement crash-safe execution the user XA on binlog-less slave
- Open
- links to