transaction does not rollback after max write set size was exceeded
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
MySQL patches by Codership | Status tracked in 5.6 | |||||
| 5.5 |
High
|
Seppo Jaakola | |||
| 5.6 |
High
|
Seppo Jaakola | |||
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC | Status tracked in 5.6 | |||||
| 5.5 |
Fix Released
|
Undecided
|
Unassigned | ||
| 5.6 |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
If transaction size exceeds the wsrep_max_ws_size limit, there will appear a warning message in error log and replication is skipped. However, the transaction is committed in the master node, and cluster will render in inconsistent state.
Changed in codership-mysql: | |
assignee: | nobody → Seppo Jaakola (seppo-jaakola) |
importance: | Undecided → High |
status: | New → In Progress |
Seppo Jaakola (seppo-jaakola) wrote : | #1 |
Seppo Jaakola (seppo-jaakola) wrote : | #2 |
FIx was merged in wsrep-5.6, in revision: http://
Seppo Jaakola (seppo-jaakola) wrote : | #7 |
With current fix, the client will get back deadlock error, when transaction size grows too large. Deadlock error is not good error code here, as it guides the client to retry the transaction, and retrying will never succeed, if transaction limits remain the same.
Therefore, the fix should be modified to use some other error code. Unfortunately there is no good choices for too large transaction error among MySQL server error codes. One potential error code could be:
ERROR 1180 (HY000): Got error # during COMMIT
Seppo Jaakola (seppo-jaakola) wrote : | #8 |
fix for better error code was pushed in revision:
wsrep-5.5: http://
Seppo Jaakola (seppo-jaakola) wrote : | #9 |
here's a way to reproduce the issue:
mysql> create table L (i int primAry key auto_increment, s varchar(1024));
mysql> set global wsrep_max_
mysql> insert into L (s) values (repeat('i',1024));
ERROR 1180 (HY000): Got error 5 during COMMIT
Seppo Jaakola (seppo-jaakola) wrote : | #10 |
Merged the fix into wsrep-5.6, in revision:
http://
Ovais Tariq (ovais-tariq) wrote : | #11 |
Is this in anyway related to https:/
Alex Yurchenko (ayurchen) wrote : | #12 |
It sure is, as well as to https:/
I.e. you should check lp:1309669 after both of these fixes.
Ovais Tariq (ovais-tariq) wrote : | #13 |
Sounds good.
Percona now uses JIRA for bug reports so this bug report is migrated to: https:/
exceeding of wsrep_max_ws_size was detected, but necessary error code (WSREP_ SIZE_EXCEEDED) was not returned, and therefore the transaction did not rollback. This issue has been fixed in revision:
wsrep-5.5: http:// bazaar. launchpad. net/~codership/ codership- mysql/wsrep- 5.5/revision/ 3950