Commit 61e00db6 authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-24796 Assertion `page_has_next... failed in btr_pcur_store_position()

In commit eaeb8ec4 (MDEV-24653)
an incorrect debug assertion was introduced.

btr_pcur_store_position(): If the only record in the page is the
instant ALTER TABLE metadata record, we cannot expect there to be
a successor page. The situation could be improved by MDEV-24673 later.
parent 0f3045e4
......@@ -303,5 +303,19 @@ SELECT * FROM t1;
a b c
DROP TABLE t1;
SET GLOBAL innodb_limit_optimistic_insert_debug = @saved_limit;
#
# MDEV-24796 Assertion page_has_next... failed
# in btr_pcur_store_position()
#
CREATE TABLE t1 (c INT KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES(1),(2);
SET GLOBAL innodb_limit_optimistic_insert_debug=2;
ALTER TABLE t1 ADD COLUMN d INT;
DELETE FROM t1;
InnoDB 0 transactions not purged
SELECT * FROM t1 WHERE c<>1 ORDER BY c DESC;
c d
DROP TABLE t1;
SET GLOBAL innodb_limit_optimistic_insert_debug = @saved_limit;
# End of 10.3 tests
SET GLOBAL innodb_purge_rseg_truncate_frequency = @save_frequency;
......@@ -348,6 +348,22 @@ SELECT * FROM t1;
DROP TABLE t1;
SET GLOBAL innodb_limit_optimistic_insert_debug = @saved_limit;
--echo #
--echo # MDEV-24796 Assertion page_has_next... failed
--echo # in btr_pcur_store_position()
--echo #
CREATE TABLE t1 (c INT KEY) ENGINE=InnoDB;
INSERT INTO t1 VALUES(1),(2);
SET GLOBAL innodb_limit_optimistic_insert_debug=2;
ALTER TABLE t1 ADD COLUMN d INT;
DELETE FROM t1;
--source include/wait_all_purged.inc
SELECT * FROM t1 WHERE c<>1 ORDER BY c DESC;
DROP TABLE t1;
SET GLOBAL innodb_limit_optimistic_insert_debug = @saved_limit;
--echo # End of 10.3 tests
SET GLOBAL innodb_purge_rseg_truncate_frequency = @save_frequency;
......@@ -169,9 +169,6 @@ btr_pcur_store_position(
ut_ad(!page_has_prev(block->frame));
rec = page_rec_get_next(rec);
if (page_rec_is_supremum(rec)) {
ut_ad(page_has_next(block->frame)
|| block->page.id.page_no()
!= index->page);
goto before_first;
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment