mysql8.4/mysql-ndb-stacksize.patch

28 lines
1.3 KiB
Diff
Raw Normal View History

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++;