You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "omri zomet (JIRA)" <ji...@apache.org> on 2014/01/01 15:50:56 UTC
[jira] [Created] (AMQCPP-529) Crash in Threads due to small stack
size (set to 32768 bytes)
omri zomet created AMQCPP-529:
---------------------------------
Summary: Crash in Threads due to small stack size (set to 32768 bytes)
Key: AMQCPP-529
URL: https://issues.apache.org/jira/browse/AMQCPP-529
Project: ActiveMQ C++ Client
Issue Type: Bug
Components: Decaf
Affects Versions: 3.8.1
Environment: linux50
Reporter: omri zomet
Assignee: Timothy Bish
Priority: Critical
Using version 3.8.1 of activemq-cpp (after using version 3.4.5) - we have suffered a crash in code running in amq threads.
Investigation shows that this happens when trying to use a char[] buffer on stack of size > 16384 , probably due to the stack size being of size 32768.
Thread::Thread() constructors call initializeSelf() with stackSize=(-1), which
in turn call createThreadInstance() with negative stackSize value (hence using PLATFORM_DEFAULT_STACK_SIZE).
Relevant code below:
----------------------
#define PLATFORM_DEFAULT_STACK_SIZE 0x8000
-----------------------
void createThreadInstance(ThreadHandle* thread, long long stackSize, int priority, bool suspended, threadingTask threadMain, void* threadArg) {
if (stackSize <= 0) {
stackSize = PLATFORM_DEFAULT_STACK_SIZE;
}
...
}
----------------------
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)