-
Pedro Figueiredo authored
Description ----------- The assertion with failing condition `!thd->has_gtid_consistency_violation`, in file `sql/rpl_gtid_execution.cc:91`, function `bool set_gtid_next(THD*, const Gtid_specification&)`, is generated while executing a DDL statement, on a temporary table, imediately after `XA PREPARE`. Analysis -------- In `gtid_pre_statement_post_implicit_commit_checks()`, a GTID consistency violation is identified and the appropriate flags and counters are updated. However, if the statement fails to execute, the given flags and counters remain untouched, as if the statement successfully executed. Fix --- When a statement fails to execute, the `THD::has_gtid_consistency_violation` the GTID violation counters should be restored to the values prior to the execution attempt, by invoking `gtid_state->end_gtid_violating_transaction` after the failure.
Pedro Figueiredo authoredDescription ----------- The assertion with failing condition `!thd->has_gtid_consistency_violation`, in file `sql/rpl_gtid_execution.cc:91`, function `bool set_gtid_next(THD*, const Gtid_specification&)`, is generated while executing a DDL statement, on a temporary table, imediately after `XA PREPARE`. Analysis -------- In `gtid_pre_statement_post_implicit_commit_checks()`, a GTID consistency violation is identified and the appropriate flags and counters are updated. However, if the statement fails to execute, the given flags and counters remain untouched, as if the statement successfully executed. Fix --- When a statement fails to execute, the `THD::has_gtid_consistency_violation` the GTID violation counters should be restored to the values prior to the execution attempt, by invoking `gtid_state->end_gtid_violating_transaction` after the failure.
Loading