retry autocommit mode can retry also MST
Bug #437798 reported by
Seppo Jaakola
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MySQL patches by Codership |
Fix Released
|
Medium
|
Seppo Jaakola |
Bug Description
If wsrep_retry_
The logic to test for autocommit mode is:
if (!(thd->options & (OPTION_
However, before we reach this state, the execution has passed end_trans(), where some
thd->options have been cleared:
thd->options&= ~(OPTION_BEGIN | OPTION_KEEP_LOG);
As a consequence, if session was in autocommit mode, and started transaction with explicit BEGIN, then
autocommit retry logic will retry just the last statement of the aborted multi statement transaction.
Changed in codership-mysql: | |
status: | New → In Progress |
importance: | Undecided → Medium |
assignee: | nobody → Seppo Jaakola (seppo-jaakola) |
milestone: | none → 0.7 |
Changed in codership-mysql: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
A quick fix, with little interference with rest of the code, has been committed.
There is new THD variable for telling if autocommit retry can be tried for this session.
THD::wsrep_ retry_autocommi t is set before dispatch_command().
A larger refactoring of aborting state model could also be considered.