-
Joao Gramacho authored
WITH GTID_LOG_EVENT A replication slave running with GTIDs, no binary log and relay info repository set to TABLE is hitting an assert (assertion "is_started()" at Ha_trx_info::is_trx_read_write) when applying a transaction that spanned across distinct relay log files. This is happening because the slave SQL thread is flushing the relay log info to TABLE while in the middle of a transaction (or, better, right after the GTID of the transaction) because of the rotation of the relay log. After setting the GTID next to the SQL thread thd, the slave was saving the rpl_info on table and calling gtid_state->save that "committed" the GTID set (but not used yet). The fix for this issue skips the gtid_state->save for operations that will save the rpl_info on table.
Joao Gramacho authoredWITH GTID_LOG_EVENT A replication slave running with GTIDs, no binary log and relay info repository set to TABLE is hitting an assert (assertion "is_started()" at Ha_trx_info::is_trx_read_write) when applying a transaction that spanned across distinct relay log files. This is happening because the slave SQL thread is flushing the relay log info to TABLE while in the middle of a transaction (or, better, right after the GTID of the transaction) because of the rotation of the relay log. After setting the GTID next to the SQL thread thd, the slave was saving the rpl_info on table and calling gtid_state->save that "committed" the GTID set (but not used yet). The fix for this issue skips the gtid_state->save for operations that will save the rpl_info on table.
Loading