diff --git a/mysql-ndb-stacksize.patch b/mysql-ndb-stacksize.patch new file mode 100644 index 0000000..aaf246d --- /dev/null +++ b/mysql-ndb-stacksize.patch @@ -0,0 +1,27 @@ +Raise minimum stack size in ndb code to be a uniform 32K (64K on 64-bit +platforms). This is in response to an episode where glibc needed 8K of +stack to run malloc(), resulting in ndbd crashing at launch. While that +was acknowledged to be a glibc bug (see bz #494631), byte-shaving here +isn't any better an idea than it is in the main mysql server. + +Note: the request gets rounded up to at least PTHREAD_STACK_MIN, which +is 128K on PPC; otherwise we would need to do something about including +the stack guard size explicitly, since it's so much larger on PPC than +elsewhere. At some point we might want to use our my_setstacksize() +hack in NdbThread_Create(). + + +diff -Naur mysql-5.1.33.orig/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp mysql-5.1.33/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp +--- mysql-5.1.33.orig/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp 2009-03-13 17:54:07.000000000 -0400 ++++ mysql-5.1.33/storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp 2009-04-15 14:00:04.000000000 -0400 +@@ -106,8 +106,8 @@ + AsyncFile::doStart() + { + // Stacksize for filesystem threads +- // An 8k stack should be enough +- const NDB_THREAD_STACKSIZE stackSize = 8192; ++ // don't make this too small ++ const NDB_THREAD_STACKSIZE stackSize = 32768; + + char buf[16]; + numAsyncFiles++; diff --git a/mysql.spec b/mysql.spec index 8e2b572..a9cf83e 100644 --- a/mysql.spec +++ b/mysql.spec @@ -1,6 +1,6 @@ Name: mysql Version: 5.1.33 -Release: 1%{?dist} +Release: 2%{?dist} Summary: MySQL client programs and shared libraries Group: Applications/Databases URL: http://www.mysql.com @@ -31,6 +31,7 @@ Patch5: mysql-install-test.patch Patch6: mysql-stack-guard.patch Patch7: mysql-plugin-bug.patch Patch8: mysql-setschedparam.patch +Patch9: mysql-ndb-stacksize.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: gperf, perl, readline-devel, openssl-devel @@ -172,6 +173,7 @@ the MySQL sources. %patch6 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p1 libtoolize --force aclocal @@ -637,6 +639,10 @@ fi %{_mandir}/man1/mysql_client_test.1* %changelog +* Wed Apr 15 2009 Tom Lane 5.1.33-2 +- Increase stack size of ndbd threads for safety's sake. +Related: #494631 + * Tue Apr 7 2009 Tom Lane 5.1.33-1 - Update to MySQL 5.1.33. - Disable use of pthread_setschedparam; doesn't work the way code expects.