mirror of
https://github.com/MariaDB/server.git
synced 2025-08-27 13:04:36 +03:00
MDEV-27025 allows to insert records before the record on which DELETE is locked, as a result the DELETE misses those records, what causes serious ACID violation. Revert MDEV-27025, MDEV-27550. The test which shows the scenario of ACID violation is added.
21 lines
499 B
Plaintext
21 lines
499 B
Plaintext
CREATE TABLE t(a INT PRIMARY KEY) ENGINE=InnoDB;
|
|
INSERT INTO t VALUES (3);
|
|
BEGIN;
|
|
connection default;
|
|
UPDATE t SET a = 2;
|
|
connect con1,localhost,root;
|
|
DELETE FROM t;
|
|
connection default;
|
|
UPDATE t SET a = 1;
|
|
COMMIT;
|
|
connection con1;
|
|
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
|
disconnect con1;
|
|
connection default;
|
|
# The above DELETE must delete all the rows in the table, so the
|
|
# following SELECT must show 0 rows.
|
|
SELECT count(*) FROM t;
|
|
count(*)
|
|
1
|
|
DROP TABLE t;
|