Fix failing test cases for MDEV-7912 patch
This commit is contained in:
parent
a5fa434d0c
commit
a4477d2977
@ -1,18 +1,11 @@
|
|||||||
|
call mtr.add_suppression("Out of memory");
|
||||||
set sql_mode="";
|
set sql_mode="";
|
||||||
drop table if exists t1,t2;
|
drop table if exists t1,t2;
|
||||||
Warnings:
|
|
||||||
Note 1051 Unknown table 't1'
|
|
||||||
Note 1051 Unknown table 't2'
|
|
||||||
create table `t1` (`a` datetime not null) engine=InnoDB;
|
create table `t1` (`a` datetime not null) engine=InnoDB;
|
||||||
create table `t2` (`a` int not null) engine=innodb;
|
create table `t2` (`a` int not null) engine=innodb;
|
||||||
replace into t1 values (),();
|
replace into t1 values (),();
|
||||||
Warnings:
|
|
||||||
Warning 1364 Field 'a' doesn't have a default value
|
|
||||||
insert into t2 values(0);
|
insert into t2 values(0);
|
||||||
set session sort_buffer_size = 1024*1024*1024*1024;
|
set session sort_buffer_size = 1024*1024*1024*1024;
|
||||||
SET session debug_dbug= '+d,make_merge_buff_alloc_fail';
|
|
||||||
delete d2 from t2 as d1, t1 as d2 where d1.a <=> d2.a;
|
delete d2 from t2 as d1, t1 as d2 where d1.a <=> d2.a;
|
||||||
ERROR HY000: Out of memory (Needed 2 bytes)
|
|
||||||
SET SESSION debug_dbug=DEFAULT;
|
|
||||||
drop table t2;
|
drop table t2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -1,18 +1,26 @@
|
|||||||
|
#
|
||||||
# MDEV-7912
|
# MDEV-7912
|
||||||
|
#
|
||||||
# multitable delete with wrongly set sort_buffer_size crashes in merge_buffers
|
# multitable delete with wrongly set sort_buffer_size crashes in merge_buffers
|
||||||
|
|
||||||
--source include/have_innodb.inc
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_debug.inc
|
||||||
|
--source include/windows.inc
|
||||||
|
|
||||||
|
call mtr.add_suppression("Out of memory");
|
||||||
|
|
||||||
set sql_mode="";
|
set sql_mode="";
|
||||||
|
--disable_warnings
|
||||||
drop table if exists t1,t2;
|
drop table if exists t1,t2;
|
||||||
create table `t1` (`a` datetime not null) engine=InnoDB;
|
create table `t1` (`a` datetime not null) engine=InnoDB;
|
||||||
create table `t2` (`a` int not null) engine=innodb;
|
create table `t2` (`a` int not null) engine=innodb;
|
||||||
|
|
||||||
replace into t1 values (),();
|
replace into t1 values (),();
|
||||||
insert into t2 values(0);
|
insert into t2 values(0);
|
||||||
set session sort_buffer_size = 1024*1024*1024*1024;
|
set session sort_buffer_size = 1024*1024*1024*1024;
|
||||||
SET session debug_dbug= '+d,make_merge_buff_alloc_fail';
|
#Either fail with EE_OUTOFMEMORY, or succeed
|
||||||
--error 5 #EE_OUTOFMEMORY
|
--error 0 , 5
|
||||||
delete d2 from t2 as d1, t1 as d2 where d1.a <=> d2.a;
|
delete d2 from t2 as d1, t1 as d2 where d1.a <=> d2.a;
|
||||||
SET SESSION debug_dbug=DEFAULT;
|
--enable_warnings
|
||||||
|
|
||||||
drop table t2;
|
drop table t2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -608,8 +608,6 @@ bool Unique::walk(TABLE *table, tree_walk_action action, void *walk_action_arg)
|
|||||||
if (flush_io_cache(&file) || reinit_io_cache(&file, READ_CACHE, 0L, 0, 0))
|
if (flush_io_cache(&file) || reinit_io_cache(&file, READ_CACHE, 0L, 0, 0))
|
||||||
return 1;
|
return 1;
|
||||||
size_t buff_sz= (max_in_memory_size / full_size + 1) * full_size;
|
size_t buff_sz= (max_in_memory_size / full_size + 1) * full_size;
|
||||||
DBUG_EXECUTE_IF("make_merge_buff_alloc_fail",
|
|
||||||
DBUG_SET("+d,simulate_out_of_memory"););
|
|
||||||
if (!(merge_buffer = (uchar *)my_malloc(buff_sz, MYF(MY_WME))))
|
if (!(merge_buffer = (uchar *)my_malloc(buff_sz, MYF(MY_WME))))
|
||||||
return 1;
|
return 1;
|
||||||
if (buff_sz < (ulong) (full_size * (file_ptrs.elements + 1)))
|
if (buff_sz < (ulong) (full_size * (file_ptrs.elements + 1)))
|
||||||
@ -739,8 +737,6 @@ bool Unique::get(TABLE *table)
|
|||||||
/* Not enough memory; Save the result to file && free memory used by tree */
|
/* Not enough memory; Save the result to file && free memory used by tree */
|
||||||
if (flush())
|
if (flush())
|
||||||
return 1;
|
return 1;
|
||||||
DBUG_EXECUTE_IF("make_merge_buff_alloc_fail",
|
|
||||||
DBUG_SET("+d,simulate_out_of_memory"););
|
|
||||||
size_t buff_sz= (max_in_memory_size / full_size + 1) * full_size;
|
size_t buff_sz= (max_in_memory_size / full_size + 1) * full_size;
|
||||||
if (!(sort_buffer= (uchar*) my_malloc(buff_sz, MYF(MY_WME))))
|
if (!(sort_buffer= (uchar*) my_malloc(buff_sz, MYF(MY_WME))))
|
||||||
return 1;
|
return 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user