Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
11.4, 11.5(EOL)
-
None
Description
InnoDB temp_truncate_freed test case fails with
innodb.temp_truncate_freed w28 [ fail ]
|
Test ended at 2024-07-06 14:27:53
|
CURRENT_TEST: innodb.temp_truncate_freed
|
mysqltest: At line 23: query 'set global innodb_buffer_pool_size = @old_innodb_buffer_pool_size' failed: ER_WRONG_ARGUMENTS (1210): Another buffer pool resize is already in progress.
|
The result from queries just before the failure was:
|
set @old_innodb_buffer_pool_size = @@innodb_buffer_pool_size;
|
set @old_immediate_scrub_data_val= @@innodb_immediate_scrub_data_uncompressed;
|
SET GLOBAL innodb_immediate_scrub_data_uncompressed=1;
|
SET GLOBAL innodb_buffer_pool_size= 16777216;
|
CREATE TEMPORARY TABLE t1(c1 MEDIUMTEXT) ENGINE=InnoDB;
|
INSERT INTO t1 VALUES (repeat(1,16777215));
|
DROP TEMPORARY TABLE t1;
|
SET GLOBAL innodb_truncate_temporary_tablespace_now=1;
|
SET GLOBAL innodb_buffer_pool_size=10485760;
|
set global innodb_buffer_pool_size = @old_innodb_buffer_pool_size;
|
Test case is as follows:
SET GLOBAL innodb_buffer_pool_size= 16777216;
|
|
CREATE TEMPORARY TABLE t1(c1 MEDIUMTEXT) ENGINE=InnoDB;
|
INSERT INTO t1 VALUES (repeat(1,16777215));
|
DROP TEMPORARY TABLE t1;
|
SET GLOBAL innodb_truncate_temporary_tablespace_now=1;
|
|
let $wait_timeout = 180;
|
let $wait_condition =
|
SELECT SUBSTR(variable_value, 1, 30) = 'Completed resizing buffer pool'
|
FROM information_schema.global_status
|
WHERE LOWER(variable_name) = 'innodb_buffer_pool_resize_status';
|
|
SET GLOBAL innodb_buffer_pool_size=10485760;
|
--source include/wait_condition.inc
|
While looking at the test case, there is a possiblity that test case
could bypass the wait condition before even resizing of buffer pool
started.
Fix is to check the wait_condition like:
let $wait_condition =
|
SELECT SUBSTR(variable_value, 1, 45) = 'Completed resizing buffer pool from 10485760'
|
FROM information_schema.global_status
|
WHERE LOWER(variable_name) = 'innodb_buffer_pool_resize_status';
|