summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <dkatz@damien-katzs-computer.local>2007-04-16 13:49:17 -0400
committerunknown <dkatz@damien-katzs-computer.local>2007-04-16 13:49:17 -0400
commit59250a68e2bf4fecb07516df9df67a517664d085 (patch)
tree58a61e91af3cbf855f1d0c1fc9251c25cd3dcbcc
parent3b943bbebd61172e9bd631d55d116dae4f496cc9 (diff)
parent53f73da2861830769d4f0bb58b1ac1a057cf3cef (diff)
downloadmariadb-git-59250a68e2bf4fecb07516df9df67a517664d085.tar.gz
Merge damien-katzs-computer.local:/Users/dkatz/mysql50
into damien-katzs-computer.local:/Users/dkatz/50b
-rw-r--r--mysql-test/r/variables-big.result20
-rw-r--r--mysql-test/t/variables-big.test20
-rw-r--r--mysys/my_alloc.c4
3 files changed, 44 insertions, 0 deletions
diff --git a/mysql-test/r/variables-big.result b/mysql-test/r/variables-big.result
new file mode 100644
index 00000000000..d7906869276
--- /dev/null
+++ b/mysql-test/r/variables-big.result
@@ -0,0 +1,20 @@
+set session transaction_prealloc_size=1024*1024*1024*1;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*2;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 2 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*3;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*4;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
+set session transaction_prealloc_size=1024*1024*1024*5;
+show processlist;
+Id User Host db Command Time State Info
+1 root localhost test Query 0 NULL show processlist
diff --git a/mysql-test/t/variables-big.test b/mysql-test/t/variables-big.test
new file mode 100644
index 00000000000..43326f3d016
--- /dev/null
+++ b/mysql-test/t/variables-big.test
@@ -0,0 +1,20 @@
+#
+# test variables big
+#
+
+--source include/big_test.inc
+
+#
+# Bug #27322 failure to allocate transaction_prealloc_size causes crash
+#
+
+set session transaction_prealloc_size=1024*1024*1024*1;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*2;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*3;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*4;
+show processlist;
+set session transaction_prealloc_size=1024*1024*1024*5;
+show processlist;
diff --git a/mysys/my_alloc.c b/mysys/my_alloc.c
index cfa2dd6216d..5983a29a3e1 100644
--- a/mysys/my_alloc.c
+++ b/mysys/my_alloc.c
@@ -133,6 +133,10 @@ void reset_root_defaults(MEM_ROOT *mem_root, uint block_size,
mem->next= *prev;
*prev= mem_root->pre_alloc= mem;
}
+ else
+ {
+ mem_root->pre_alloc= 0;
+ }
}
}
else