mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
35d477dd1d
The issue is caused by a race between buf_page_create_low getting the
page from buffer pool hash and buf_LRU_free_page evicting it from LRU.
The issue is introduced in 10.6 by MDEV-27058
commit aaef2e1d8c
MDEV-27058: Reduce the size of buf_block_t and buf_page_t
The solution is buffer fix the page before releasing buffer pool mutex
in buf_page_create_low when x_lock_try fails to acquire the page latch.
61 lines
1.5 KiB
Text
61 lines
1.5 KiB
Text
--source include/no_valgrind_without_big.inc
|
|
--source include/maybe_debug.inc
|
|
######## t/ddl_innodb.test ######
|
|
#
|
|
# Stress the storage engine InnoDB with CREATE/DROP TABLE/INDEX
|
|
#
|
|
# Please look for details within include/ddl1.inc.
|
|
#
|
|
# Creation of this test:
|
|
# 2007-07-04 mleich
|
|
#
|
|
|
|
# Storage engine to be used in CREATE TABLE
|
|
--source include/have_innodb.inc
|
|
let $engine_type= InnoDB;
|
|
|
|
--source include/no_protocol.inc
|
|
|
|
let $run= `SELECT '$BIG_TEST' = '1'`;
|
|
if ($run)
|
|
{
|
|
# A run started with "--big-test" should be allowed to consume more time.
|
|
# Rough intended runtime per subtest variant in seconds
|
|
let $runtime = 5;
|
|
# number of rounds till we look at the clock again
|
|
let $loop_size= 100;
|
|
}
|
|
if (!$run)
|
|
{
|
|
let $runtime = 1;
|
|
let $loop_size= 20;
|
|
}
|
|
|
|
|
|
##### Some preparations needed for the ddl*.inc scripts
|
|
--source suite/stress/include/ddl.pre
|
|
|
|
if ($have_debug) {
|
|
--disable_query_log
|
|
SET @old_debug_dbug = @@global.debug_dbug;
|
|
SET DEBUG_DBUG="+d,ib_buf_create_intermittent_wait";
|
|
--enable_query_log
|
|
}
|
|
|
|
--source suite/stress/include/ddl1.inc
|
|
--source suite/stress/include/ddl2.inc
|
|
--source suite/stress/include/ddl3.inc
|
|
--source suite/stress/include/ddl4.inc
|
|
--source suite/stress/include/ddl5.inc
|
|
--source suite/stress/include/ddl6.inc
|
|
--source suite/stress/include/ddl7.inc
|
|
--source suite/stress/include/ddl8.inc
|
|
|
|
if ($have_debug) {
|
|
--disable_query_log
|
|
SET @@global.debug_dbug = @old_debug_dbug;
|
|
--enable_query_log
|
|
}
|
|
|
|
##### Cleanup
|
|
--source suite/stress/include/ddl.cln
|