What error can occur if a thread stack_size is not large enough?

If you create a large number of instances or entities and there is insufficient thread stack space, you can get the following error:

REDAFastBufferPool_getBuffer:!precondition: pool==((void *)0)
REDASkiplistNode_new:!create node
REDASkiplist_assertNodeEA:!create node
COMMENDSrReaderService_assertBatchInfo:!get batch info buffer
COMMENDSrReaderService_onSubmessage:!assert batch info
REDASkiplist_gotoNextNode:!precondition: list==((void *)0) || node==((void *)0)|| *node==((void *)0)
REDASkiplist_gotoNextNode:!precondition: list==((void *)0) || node==((void *)0)|| *node==((void *)0)

To resolve this, you can increase the stack size of the event thread and the reciever pool threads by setting the following QoS:

<participant_qos> 
    <event> 
        <thread> 
            <stack_size>####</stack_size> 
        </thread> 
    </event> 
    <receiver_pool> 
        <thread> 
            <stack_size>####</stack_size> 
        </thread> 
    </receiver_pool> 
</participant_qos>

 

Keywords: