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)