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:

1
2
3
4
5
6
7
8
9
10
11
12
<participant_qos>
    <event>
        <thread>
            <stack_size>####</stack_size>
        </thread>
    </event>
    <receiver_pool>
        <thread>
            <stack_size>####</stack_size>
        </thread>
    </receiver_pool>
</participant_qos>

 

Keywords: