mariadb/mysql-test/suite/innodb/t/ibuf_delete.test
Marko Mäkelä 7bccf3dd74 MDEV-28274 Assertion s <= READ_FIX failed in buf_page_t::set_state
buf_page_t::set_state(): Relax a debug assertion. It is fine to update
a read-fixed block descriptor to be both read-fixed and buffer-fixed.

buf_pool_t::watch_unset(): Fix some incorrect logic that was implemented
in commit e9e6db9355.

Thanks to Elena Stepanova for the test case.
2022-04-11 10:22:40 +03:00

67 lines
1.4 KiB
Text

--source include/have_innodb.inc
--source include/have_sequence.inc
SET @buffering= @@innodb_change_buffering;
SET GLOBAL innodb_change_buffering= deletes;
SET @flush= @@innodb_flush_log_at_trx_commit;
SET GLOBAL innodb_flush_log_at_trx_commit= 0;
CREATE TABLE t1 (
a varchar(1024),
b varchar(1024),
c varchar(1024),
d varchar(1024),
e varchar(1024),
f varchar(1024),
g varchar(1024),
h varchar(1024),
key (a),
key (b),
key (c),
key (d)
) ENGINE=InnoDB;
INSERT INTO t1
SELECT REPEAT('x',10), REPEAT('x',13), REPEAT('x',427), REPEAT('x',244),
REPEAT('x',9), REPEAT('x',112), REPEAT('x',814), REPEAT('x',633)
FROM seq_1_to_1024;
CREATE TEMPORARY TABLE t2 (
a varchar(1024),
b varchar(1024),
c varchar(1024),
d varchar(1024),
e varchar(1024),
f varchar(1024),
g varchar(1024),
h varchar(1024),
i varchar(1024),
j varchar(1024),
k varchar(1024),
l varchar(1024),
m varchar(1024),
key (a),
key (b),
key (c),
key (d),
key (e),
key (f)
) ENGINE=InnoDB;
SET @x=REPEAT('x',512);
INSERT INTO t2 SELECT @x, @x, @x, @x, @x, @x, @x, @x, @x, @x, @x, @x, @x
FROM seq_1_to_768;
--disable_query_log
--let $run=1024
while ($run)
{
eval DELETE FROM t1 LIMIT 1 /* $run */;
--dec $run
}
--enable_query_log
# Cleanup
DROP TABLE t1, t2;
SET GLOBAL innodb_change_buffering= @buffering;
SET GLOBAL innodb_flush_log_at_trx_commit= @flush;