[ 
https://issues.apache.org/jira/browse/AMQCPP-529?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy Bish resolved AMQCPP-529.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 3.9.0
                   3.8.3

Updated the default on 3.8.x to a slightly larger value.  You will still need 
to use the heap if your dataset is larger.  On trunk we now stick to sys 
defaults and let that be tuned by the user.  Can still be set on user created 
threads via the Thread class constructor.  

> 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
>             Fix For: 3.8.3, 3.9.0
>
>
> 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)

Reply via email to