Commit a4477d29 authored by Vicentiu Ciorbaru's avatar Vicentiu Ciorbaru

Fix failing test cases for MDEV-7912 patch

parent a5fa434d
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;
#
# 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;
\ No newline at end of file
...@@ -608,8 +608,6 @@ bool Unique::walk(TABLE *table, tree_walk_action action, void *walk_action_arg) ...@@ -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) ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment