5.8. TopicQueries
5.8.1. [Critical] Communication could stop when using bounded max_samples and TopicQueries
Communication may have stopped when using TopicQueries and setting the DataReader’s max_samples QoS setting to less than 256 x (the number of DataWriters responding to the TopicQueries).
This situation could only happen if all of the following were also true:
The DataReader was configured with KEEP_LAST history kind.
The DataReader created multiple TopicQueries, and the responses to those TopicQueries contained some of the same samples.
There were dropped samples.
If all of those conditions were met and, before the losses were repaired, the DataReader’s queue filled up to the max_samples resource limit, then the DataReader would never accept any more samples into its queue.
[RTI Issue ID CORE-13784]
5.8.2. [Major] max_samples resource limit not honored in some cases when using an unkeyed topic and TopicQueries
If a DataReader created multiple TopicQueries and had a finite max_samples resource limit, that limit was not correctly enforced in TopicQuery queues. After some time, the DataReader may have accepted more samples than max_samples or failed to allocate more samples, leading to errors and lost samples. This only happened if the topic was unkeyed. Now, when a DataReader issues multiple TopicQueries, the max_samples resource limit is properly enforced for each of the TopicQuery queues correctly.
[RTI Issue ID CORE-14363]