mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Minor cleanup of innodb.innodb-change-buffer-recovery
This should be a non-functional change. I was unable to repeat MDEV-11626 innodb.innodb-change-buffer-recovery fails for xtradb and cannot determine the reason for the failure without having access to the files. The repeatability of MDEV-11626 should not be affected by these changes.
This commit is contained in:
@ -8,7 +8,7 @@ a INT AUTO_INCREMENT PRIMARY KEY,
|
|||||||
b CHAR(1),
|
b CHAR(1),
|
||||||
c INT,
|
c INT,
|
||||||
INDEX(b))
|
INDEX(b))
|
||||||
ENGINE=InnoDB;
|
ENGINE=InnoDB STATS_PERSISTENT=0;
|
||||||
INSERT INTO t1 VALUES(0,'x',1);
|
INSERT INTO t1 VALUES(0,'x',1);
|
||||||
INSERT INTO t1 SELECT 0,b,c FROM t1;
|
INSERT INTO t1 SELECT 0,b,c FROM t1;
|
||||||
INSERT INTO t1 SELECT 0,b,c FROM t1;
|
INSERT INTO t1 SELECT 0,b,c FROM t1;
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
if (`select plugin_auth_version < "5.6.17" from information_schema.plugins where plugin_name='innodb'`)
|
|
||||||
{
|
|
||||||
--skip Not fixed in InnoDB before 5.6.17
|
|
||||||
}
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Bug#69122 - INNODB DOESN'T REDO-LOG INSERT BUFFER MERGE
|
--echo # Bug#69122 - INNODB DOESN'T REDO-LOG INSERT BUFFER MERGE
|
||||||
--echo # OPERATION IF IT IS DONE IN-PLACE
|
--echo # OPERATION IF IT IS DONE IN-PLACE
|
||||||
@ -14,8 +9,9 @@ if (`select plugin_auth_version < "5.6.17" from information_schema.plugins where
|
|||||||
--source include/not_embedded.inc
|
--source include/not_embedded.inc
|
||||||
# DBUG_SUICIDE() hangs under valgrind
|
# DBUG_SUICIDE() hangs under valgrind
|
||||||
--source include/not_valgrind.inc
|
--source include/not_valgrind.inc
|
||||||
# No windows, need perl
|
|
||||||
--source include/not_windows.inc
|
--let $_server_id= `SELECT @@server_id`
|
||||||
|
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect
|
||||||
|
|
||||||
# The flag innodb_change_buffering_debug is only available in debug builds.
|
# The flag innodb_change_buffering_debug is only available in debug builds.
|
||||||
# It instructs InnoDB to try to evict pages from the buffer pool when
|
# It instructs InnoDB to try to evict pages from the buffer pool when
|
||||||
@ -29,7 +25,7 @@ CREATE TABLE t1(
|
|||||||
b CHAR(1),
|
b CHAR(1),
|
||||||
c INT,
|
c INT,
|
||||||
INDEX(b))
|
INDEX(b))
|
||||||
ENGINE=InnoDB;
|
ENGINE=InnoDB STATS_PERSISTENT=0;
|
||||||
|
|
||||||
# Create enough rows for the table, so that the change buffer will be
|
# Create enough rows for the table, so that the change buffer will be
|
||||||
# used for modifying the secondary index page. There must be multiple
|
# used for modifying the secondary index page. There must be multiple
|
||||||
@ -54,27 +50,23 @@ BEGIN;
|
|||||||
SELECT b FROM t1 LIMIT 3;
|
SELECT b FROM t1 LIMIT 3;
|
||||||
|
|
||||||
connect (con1,localhost,root,,);
|
connect (con1,localhost,root,,);
|
||||||
connection con1;
|
|
||||||
BEGIN;
|
BEGIN;
|
||||||
DELETE FROM t1 WHERE a=1;
|
DELETE FROM t1 WHERE a=1;
|
||||||
# This should be buffered, if innodb_change_buffering_debug = 1 is in effect.
|
# This should be buffered, if innodb_change_buffering_debug = 1 is in effect.
|
||||||
INSERT INTO t1 VALUES(1,'X',1);
|
INSERT INTO t1 VALUES(1,'X',1);
|
||||||
|
|
||||||
SET DEBUG_DBUG='+d,crash_after_log_ibuf_upd_inplace';
|
SET DEBUG_DBUG='+d,crash_after_log_ibuf_upd_inplace';
|
||||||
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
||||||
|
--exec echo "wait" > $_expect_file_name
|
||||||
--error 2013
|
--error 2013
|
||||||
# This should force a change buffer merge
|
# This should force a change buffer merge
|
||||||
SELECT b FROM t1 LIMIT 3;
|
SELECT b FROM t1 LIMIT 3;
|
||||||
|
disconnect con1;
|
||||||
|
connection default;
|
||||||
|
|
||||||
let SEARCH_PATTERN=Wrote log record for ibuf update in place operation;
|
let SEARCH_PATTERN=Wrote log record for ibuf update in place operation;
|
||||||
--source include/search_pattern_in_file.inc
|
--source include/search_pattern_in_file.inc
|
||||||
|
--source include/start_mysqld.inc
|
||||||
# Write file to make mysql-test-run.pl start up the server again
|
|
||||||
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
|
||||||
--enable_reconnect
|
|
||||||
--source include/wait_until_connected_again.inc
|
|
||||||
|
|
||||||
CHECK TABLE t1;
|
CHECK TABLE t1;
|
||||||
|
|
||||||
# Cleanup
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
Reference in New Issue
Block a user