ROLLBACK to SAVEPOINT does not rollback correctly on slaves
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona XtraDB Cluster moved to https://jira.percona.com/projects/PXC |
Fix Committed
|
Undecided
|
Krunal Bauskar |
Bug Description
This may be related to #1524948 (but in my case the client isn't killed)
When using ROLLBACK TO SAVEPOINT on a cluster member, other cluster members seems to roll back to the beginning of the transaction, and not the savepoint.
This leads to consistency error in the cluster and most probably shutdown one that data is acceded again.
Example:
-- =======
CREATE TABLE example (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(64));
BEGIN;
-- Will **not** be replicated to the other members
INSERT INTO example VALUES(1, 'first!');
SAVEPOINT savepoint001;
-- no need for any operation here
-- (and no change if there is)
ROLLBACK TO SAVEPOINT savepoint001;
-- Will show in the other nodes
INSERT INTO example VALUES(2, 'second');
COMMIT;
SELECT * FROM example;
/*
On executed member
+----+--------+
| id | name |
+----+--------+
| 1 | first! |
| 2 | second |
+----+--------+
Other members:
+----+--------+
| id | name |
+----+--------+
| 2 | second |
+----+--------+
*/
-- =======
Server version: 5.6.36-82.0-56 Percona XtraDB Cluster (GPL), Release rel82.0, Revision de7a681, WSREP version 26.20, wsrep_26.20
I also tested with 5.7.18-15-57-log (WSREP version 29.20) and it worked as expected (both rows are present on all members)
affects: | percona-server → percona-xtradb-cluster |
Changed in percona-xtradb-cluster: | |
status: | Incomplete → Opinion |
status: | Opinion → New |
Changed in percona-xtradb-cluster: | |
assignee: | nobody → Krunal Bauskar (krunal-bauskar) |
Thank you for the report.
I cannot repeat described behavior. Please attach configuration files for all nodes and error log files from all nodes.