-
Venkatesh Duggirala authored
Problem: Server is hitting the above mentioned assert when commiting statements under GTID_MODE is ON + binlog disabled + autocommit enabled combination. Analysis: Server saves (commits) transaction owned gtid into gtid_executed table before transaction prepare if binlog is disabled or binlog is enabled and log_slave_updates is disabled with slave SQL thread or slave worker thread. ha_commit_trans() function calculates tranaction context ahead of calling gtid_state->save. It could happen that the calculated transaction context (ha_info) would have got committed inside gtid_state->save call when autocommit is enabled. In this case, Server is hitting the above mentioned error. Fix: Calculate transaction context after calling gtid_state->save(). Only execute commit on the remaining/pending transactions.
Venkatesh Duggirala authoredProblem: Server is hitting the above mentioned assert when commiting statements under GTID_MODE is ON + binlog disabled + autocommit enabled combination. Analysis: Server saves (commits) transaction owned gtid into gtid_executed table before transaction prepare if binlog is disabled or binlog is enabled and log_slave_updates is disabled with slave SQL thread or slave worker thread. ha_commit_trans() function calculates tranaction context ahead of calling gtid_state->save. It could happen that the calculated transaction context (ha_info) would have got committed inside gtid_state->save call when autocommit is enabled. In this case, Server is hitting the above mentioned error. Fix: Calculate transaction context after calling gtid_state->save(). Only execute commit on the remaining/pending transactions.
Loading