mariadb/storage/innobase/handler
Kristian Nielsen 5335c85a47 Binlog-in-engine: Fix incorrect handling of internal 2pc rollback
The error handling for internal 2pc transactions (eg. RocksDB/Spider) would
incorrectly try to handle the engine binlog_unlog() during rollback, in
binlog_post_rollback(); this should instead be handled solely in
log_and_order() and unlog(). This could trigger for example in parallel
replication error handling, causing assertions when wrongly entering XA code
paths.

Also fix a couple bugs found during debug:

 - Don't send format description even to the slave from before the starting
   GTID position, as that can cause the slave to wrongly drop temporary
   tables.

 - When looking up the initial GTID position for a new dump thread, wait for
   the necessary part of the binlog to become durable before reading it.

 - Don't error when searching the initial GTID position if reaching EOF of
   the durable portion, instead search back to an earlier GTID state record.

 - A rare race in the test framework that could fail to kill off lingering
   dump threads before RESET MASTER.

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2026-04-08 12:34:24 +02:00
..
ha_innodb.cc Binlog-in-engine: Initial support for 2pc and XA 2026-04-08 12:29:45 +02:00
ha_innodb.h MDEV-37152: Remove many calls to _current_thd() 2025-09-29 14:35:02 +03:00
handler0alter.cc MDEV-37152: Remove many calls to _current_thd() 2025-09-29 14:35:02 +03:00
i_s.cc MDEV-37152: Remove many calls to _current_thd() 2025-09-29 14:35:02 +03:00
i_s.h Merge 10.5 into 10.6 2021-08-23 11:21:33 +03:00
innodb_binlog.cc Binlog-in-engine: Fix incorrect handling of internal 2pc rollback 2026-04-08 12:34:24 +02:00