[
https://issues.apache.org/jira/browse/AMQCPP-529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13860599#comment-13860599
]
Timothy Bish commented on AMQCPP-529:
-------------------------------------
I believe we shouldn't be overriding the pthread defaults here unless a stack
size is really given. This probably was left over from working on the Windows
side and not cleaning up. Letting this default to the default would allow for
control of all thread stacks via ulimit or calls to setrlimit() for
RLIMIT_STACK mods.
> 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)