summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicentiu Ciorbaru <vicentiu@mariadb.org>2015-04-29 14:14:45 +0300
committerVicentiu Ciorbaru <vicentiu@mariadb.org>2015-04-29 14:16:03 +0300
commita4477d297728c18cbd25f10d71ea946356e54bfd (patch)
treee782cded034481abb7fb495b6c7ec7b1a2dc79de
parenta5fa434d0cec39b0db9f67ae2d6a824e2e53e39d (diff)
downloadmariadb-git-a4477d297728c18cbd25f10d71ea946356e54bfd.tar.gz
Fix failing test cases for MDEV-7912 patch
-rw-r--r--mysql-test/r/uniques_crash-7912.result9
-rw-r--r--mysql-test/t/uniques_crash-7912.test18
-rw-r--r--sql/uniques.cc4
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;