I am a bit new to DDS/OpenSplice - I've written a transmitter and receiver that streams video using pub/sub (I'm not using OpenSplice Streams though, just DCPS). It all seems to work perfectly, however, when it is running over a long period of time, for the reader application, the memory usage will increase in every thread, until the kernel OOM kills my application. This smells like a memory leak but I checked it with valgrind and it seems fine. Additionally, stopping the data stream frees up the memory, so if it was leaking I wouldn't expect that to happen.
I've set up my QoS as best I can, in order to achieve what I like. I want max throughput, and don't care if I drop a sample or two along the way. So I've set to volatile so that dropped samples aren't stored anywhere, but I suspect somewhere, some stuff is being stored in memory.
So anyway, I suspect that this is just a QoS/configuration issue - are there any QoS policies I may have missed that could cause this to occur? Here are the ones I've configured in my initializer list, I guess all other policies would be using the defaults:
<< dds::core::policy::Liveliness(dds::core::policy::LivelinessKind::AUTOMATIC ,dds::core::Duration(1,0))
Thanks for your time