List:Commits« Previous MessageNext Message »
From:Chad MILLER Date:September 26 2006 10:16pm
Subject:bk commit into 5.0 tree (cmiller:1.2284) BUG#21476
View as plain text  
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#21476Chad MILLER27 Sep