I have been having issues with reading 15 topics from a single subscriber with multiple readers using the UDP transport. I have used RTI monitor to verify that DDS is dropping messages which is expected with best effort. The data of one topic is higher than the default max message size for the UDP transport. The size of the messages are ~10KB. I realize this is causing fragmentation in DDS and I am looking at options to assuage this issue (async pub, increase max message size, multiple read threads).
I recently have been attempting changes to increase the parallelization of the readers to help stop dropping messages. As the best practice article suggests: http://community.rti.com/best-practices/create-few-publishers-and-subscribers-possible I tried to increase the reader threads. This change worked by creating 15 extra threads and assigned them to the ports I specified in the transport unicast policy.
I use a wait set to block for messages. The waitset is conditioned for the readers. The readers will take() on the data.
My problem is:
Thread [15] (Suspended: Signal 'SIGSEGV' received. Description: Segmentation fault.)
11 REDAWorker_enterExclusiveArea() 0x08873292
10 PRESWaitSet_trigger_actionI() 0x086a68b2
9 PRESCondition_set_trigger_valueI() 0x086a5347
8 PRESStatusCondition_trigger() 0x086a5ba4
7 PRESPsService_readerNotifyOfReaderQueueChanges() 0x086ff8a8
6 PRESPsService_readerSampleListenerOnNewData() 0x08706142
5 COMMENDBeReaderService_onSubmessage() 0x087a87bb
4 MIGInterpreter_parse() 0x0881477e
3 COMMENDActiveFacadeReceiver_loop() 0x087a592a
2 RTIOsapiThreadChild_onSpawned() 0x0888490c
1 <symbol is not available> 0xb0320070
There seems to be a concurrency issue. This consistently occurs on one of the threads (not one in particular) when I try to playback data. Is there something I'm doing wrong by using a wait set and accessing the readers while these threads are running?
Hello,
This response is in regards to your issue with increasing the max message size above 9K. The current default max message size is set to 9K. Please review the following entry in our knowledge base for how to increase the max message size:
http://community.rti.com/kb/what-maximum-message-size-supported-rti-connext-4x-and-above
Bert