Bug#19904003 INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG=1 CAUSES INFINITE PAGE SPLIT
The debug configuration parameter innodb_optimistic_insert_debug which was introduced for testing corner cases in B-tree handling had a bug in it. The value 1 would trigger an infinite sequence of page splits. Fix: When the value 1 is specified, disable this debug feature. Approved by Yasufumi Kinoshita
This commit is contained in:
parent
ffc33cffe3
commit
a265914018
11
mysql-test/suite/innodb/r/insert_debug.result
Normal file
11
mysql-test/suite/innodb/r/insert_debug.result
Normal file
@ -0,0 +1,11 @@
|
||||
#
|
||||
# Bug#19904003 INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG=1
|
||||
# CAUSES INFINITE PAGE SPLIT
|
||||
#
|
||||
SET GLOBAL innodb_change_buffering_debug=1;
|
||||
SET GLOBAL innodb_limit_optimistic_insert_debug=1;
|
||||
CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=InnoDB
|
||||
PARTITION BY HASH (c1) PARTITIONS 15;
|
||||
DROP TABLE t1;
|
||||
SET GLOBAL innodb_change_buffering_debug=0;
|
||||
SET GLOBAL innodb_limit_optimistic_insert_debug=0;
|
16
mysql-test/suite/innodb/t/insert_debug.test
Normal file
16
mysql-test/suite/innodb/t/insert_debug.test
Normal file
@ -0,0 +1,16 @@
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
|
||||
--echo #
|
||||
--echo # Bug#19904003 INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG=1
|
||||
--echo # CAUSES INFINITE PAGE SPLIT
|
||||
--echo #
|
||||
|
||||
SET GLOBAL innodb_change_buffering_debug=1;
|
||||
SET GLOBAL innodb_limit_optimistic_insert_debug=1;
|
||||
CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=InnoDB
|
||||
PARTITION BY HASH (c1) PARTITIONS 15;
|
||||
DROP TABLE t1;
|
||||
|
||||
SET GLOBAL innodb_change_buffering_debug=0;
|
||||
SET GLOBAL innodb_limit_optimistic_insert_debug=0;
|
@ -1,6 +1,6 @@
|
||||
/*****************************************************************************
|
||||
|
||||
Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
|
||||
Copyright (c) 1994, 2014, Oracle and/or its affiliates. All Rights Reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
@ -28,7 +28,7 @@ Created 10/16/1994 Heikki Tuuri
|
||||
|
||||
#ifdef UNIV_DEBUG
|
||||
# define LIMIT_OPTIMISTIC_INSERT_DEBUG(NREC, CODE)\
|
||||
if (btr_cur_limit_optimistic_insert_debug\
|
||||
if (btr_cur_limit_optimistic_insert_debug > 1\
|
||||
&& (NREC) >= (ulint)btr_cur_limit_optimistic_insert_debug) {\
|
||||
CODE;\
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user