diff options
author | Vlad Lesin <vlad_lesin@mail.ru> | 2022-02-15 10:04:05 +0300 |
---|---|---|
committer | Vlad Lesin <vlad_lesin@mail.ru> | 2022-02-15 10:04:05 +0300 |
commit | 5948d7602ec7f61937c368dcb134e6ec226a2990 (patch) | |
tree | 257048f0bdc8bfe5926746107f343c6aa506315b /mysql-test | |
parent | 20e9e804c131c6522bc7c469e4863e8d1eaa3ee0 (diff) | |
download | mariadb-git-5948d7602ec7f61937c368dcb134e6ec226a2990.tar.gz |
MDEV-20605 Awaken transaction can miss inserted by other transaction records due to wrong persistent cursor restoration
Post-push fix: remove unstable test.
The test was developed to find the reason of duplicated rows caused by
MDEV-20605 fix. The test is not necessary as the reason was found and
the bug was fixed.
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/suite/innodb/r/cursor-restore-non-locking-read.result | 26 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/cursor-restore-non-locking-read.test | 44 |
2 files changed, 0 insertions, 70 deletions
diff --git a/mysql-test/suite/innodb/r/cursor-restore-non-locking-read.result b/mysql-test/suite/innodb/r/cursor-restore-non-locking-read.result deleted file mode 100644 index d8644847166..00000000000 --- a/mysql-test/suite/innodb/r/cursor-restore-non-locking-read.result +++ /dev/null @@ -1,26 +0,0 @@ -SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency; -SET GLOBAL innodb_purge_rseg_truncate_frequency=1; -CREATE TABLE t1 (pk int PRIMARY KEY, c int UNIQUE) ENGINE=InnoDB; -INSERT INTO t1 VALUES (10,10),(20,20),(30,30); -connect prevent_purge,localhost,root,,; -start transaction with consistent snapshot; -UPDATE t1 SET c=300 WHERE pk = 30; -connection default; -DELETE FROM t1 WHERE pk = 10; -INSERT INTO t1 VALUES(5,10); -SET DEBUG_SYNC = "row_search_clust_unlatched SIGNAL unlatched WAIT_FOR cont"; -SELECT pk FROM t1 FORCE INDEX (c); -connect con1,localhost,root,,; -SET DEBUG_SYNC = "now WAIT_FOR unlatched"; -disconnect prevent_purge; -InnoDB 1 transactions not purged -SET DEBUG_SYNC = 'now SIGNAL cont'; -disconnect con1; -connection default; -pk -5 -20 -30 -SET DEBUG_SYNC = 'RESET'; -DROP TABLE t1; -SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; diff --git a/mysql-test/suite/innodb/t/cursor-restore-non-locking-read.test b/mysql-test/suite/innodb/t/cursor-restore-non-locking-read.test deleted file mode 100644 index c9ae258791c..00000000000 --- a/mysql-test/suite/innodb/t/cursor-restore-non-locking-read.test +++ /dev/null @@ -1,44 +0,0 @@ ---source include/have_innodb.inc ---source include/have_debug.inc ---source include/have_debug_sync.inc ---source include/count_sessions.inc - -SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency; -SET GLOBAL innodb_purge_rseg_truncate_frequency=1; - -CREATE TABLE t1 (pk int PRIMARY KEY, c int UNIQUE) ENGINE=InnoDB; - -INSERT INTO t1 VALUES (10,10),(20,20),(30,30); - ---connect(prevent_purge,localhost,root,,) -start transaction with consistent snapshot; -# We need this to update page's transaction id for secondary index. -UPDATE t1 SET c=300 WHERE pk = 30; - ---connection default -DELETE FROM t1 WHERE pk = 10; -INSERT INTO t1 VALUES(5,10); -SET DEBUG_SYNC = "row_search_clust_unlatched SIGNAL unlatched WAIT_FOR cont"; -# With the above sync point row_search_mvcc() will be blocked on delete-marked -# record (10,10) in secondary index just after all page latches are released. -# After this record is purged, row_searc_mvcc() will be unblocked, and cursor -# will be restored to the secondary index record (10,5). As the unique field is -# the same as in the cursor's stored record, and the bug is not fixed, there -# value 5 will be doubled in the result set. ---send SELECT pk FROM t1 FORCE INDEX (c) - ---connect(con1,localhost,root,,) -SET DEBUG_SYNC = "now WAIT_FOR unlatched"; ---disconnect prevent_purge -let $wait_all_purged= 1; ---source include/wait_all_purged.inc -SET DEBUG_SYNC = 'now SIGNAL cont'; ---disconnect con1 - ---connection default ---reap - -SET DEBUG_SYNC = 'RESET'; -DROP TABLE t1; -SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; ---source include/wait_until_count_sessions.inc |