Below is the list of changes that have just been committed into a local
5.0 repository of cmiller. When cmiller does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2006-09-26 18:16:37-04:00, cmiller@stripped +1 -0
Bug#21476: (Thread stack overrun not caught, causing SEGV)
The STACK_MIN_SIZE is currently set to 8192, when we actually need
(emperically discovered) 9236 bytes to raise an fatal error, on Ubuntu
Dapper Drake, libc6 2.3.6-0ubuntu2, Linux kernel 2.6.15-27-686, on x86.
I'm taking that as a new lower bound, plus 500B of wiggle-room for sundry
word sizes and stack behaviors.
sql/mysql_priv.h@stripped, 2006-09-26 18:16:35-04:00, cmiller@stripped +8 -1
Increase the amount we require to be available for the stack, since
experience told us that the previous amount was too little by at least
1044 bytes. Add a safety buffer of another 500 bytes to the discovered
lower limit.
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: cmiller
# Host: zippy.cornsilk.net
# Root: /home/cmiller/work/mysql/bug21476/my50-bug21476
--- 1.410/sql/mysql_priv.h 2006-09-26 18:16:41 -04:00
+++ 1.411/sql/mysql_priv.h 2006-09-26 18:16:41 -04:00
@@ -131,7 +131,14 @@ MY_LOCALE *my_locale_by_name(const char
#define MAX_ACCEPT_RETRY 10 // Test accept this many times
#define MAX_FIELDS_BEFORE_HASH 32
#define USER_VARS_HASH_SIZE 16
-#define STACK_MIN_SIZE 8192 // Abort if less stack during eval.
+
+#define STACK_MIN_SIZE 9736 // Abort if less stack during eval.
+/*
+ Tested requirement + (arbitrarily chosen) 500 bytes.
+ Discovered through binary search 2006-09-26 on Ubuntu Dapper Drake, libc6
+ 2.3.6-0ubuntu2, Linux kernel 2.6.15-27-686, on x86.
+ */
+
#define STACK_MIN_SIZE_FOR_OPEN 1024*80
#define STACK_BUFF_ALLOC 256 // For stack overrun checks
#ifndef MYSQLD_NET_RETRY_COUNT
| Thread |
|---|
| • bk commit into 5.0 tree (cmiller:1.2284) BUG#21476 | Chad MILLER | 27 Sep |