diff options
author | Vicentiu Ciorbaru <vicentiu@mariadb.org> | 2015-04-29 14:14:45 +0300 |
---|---|---|
committer | Vicentiu Ciorbaru <vicentiu@mariadb.org> | 2015-04-29 14:16:03 +0300 |
commit | a4477d297728c18cbd25f10d71ea946356e54bfd (patch) | |
tree | e782cded034481abb7fb495b6c7ec7b1a2dc79de | |
parent | a5fa434d0cec39b0db9f67ae2d6a824e2e53e39d (diff) | |
download | mariadb-git-a4477d297728c18cbd25f10d71ea946356e54bfd.tar.gz |
Fix failing test cases for MDEV-7912 patch
-rw-r--r-- | mysql-test/r/uniques_crash-7912.result | 9 | ||||
-rw-r--r-- | mysql-test/t/uniques_crash-7912.test | 18 | ||||
-rw-r--r-- | sql/uniques.cc | 4 |
3 files changed, 14 insertions, 17 deletions
diff --git a/mysql-test/r/uniques_crash-7912.result b/mysql-test/r/uniques_crash-7912.result index 31029da5c86..bf3aab684ae 100644 --- a/mysql-test/r/uniques_crash-7912.result +++ b/mysql-test/r/uniques_crash-7912.result @@ -1,18 +1,11 @@ +call mtr.add_suppression("Out of memory"); set sql_mode=""; 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 `t2` (`a` int not null) engine=innodb; replace into t1 values (),(); -Warnings: -Warning 1364 Field 'a' doesn't have a default value insert into t2 values(0); 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; -ERROR HY000: Out of memory (Needed 2 bytes) -SET SESSION debug_dbug=DEFAULT; drop table t2; drop table t1; diff --git a/mysql-test/t/uniques_crash-7912.test b/mysql-test/t/uniques_crash-7912.test index 010855f7fb4..8dc82f8f540 100644 --- a/mysql-test/t/uniques_crash-7912.test +++ b/mysql-test/t/uniques_crash-7912.test @@ -1,18 +1,26 @@ +# # MDEV-7912 +# # multitable delete with wrongly set sort_buffer_size crashes in merge_buffers + --source include/have_innodb.inc +--source include/have_debug.inc +--source include/windows.inc + +call mtr.add_suppression("Out of memory"); + set sql_mode=""; +--disable_warnings drop table if exists t1,t2; create table `t1` (`a` datetime not null) engine=InnoDB; create table `t2` (`a` int not null) engine=innodb; - replace into t1 values (),(); insert into t2 values(0); set session sort_buffer_size = 1024*1024*1024*1024; -SET session debug_dbug= '+d,make_merge_buff_alloc_fail'; ---error 5 #EE_OUTOFMEMORY +#Either fail with EE_OUTOFMEMORY, or succeed +--error 0 , 5 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 t1;
\ No newline at end of file +drop table t1; diff --git a/sql/uniques.cc b/sql/uniques.cc index 455fe205717..fe3e329cda6 100644 --- a/sql/uniques.cc +++ b/sql/uniques.cc @@ -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)) return 1; 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)))) return 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 */ if (flush()) 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; if (!(sort_buffer= (uchar*) my_malloc(buff_sz, MYF(MY_WME)))) return 1; |