5.9. Content Filters and Query Conditions

5.9.1. [Critical] Unexpected data loss when using writer-side content filtering and changing QoS

This issue was fixed in release 6.1.0, but not documented at that time.

Consider the following scenario:

  • There are some DataReaders that are not using content filtering and other DataReaders that are using writer-side content filtering.

  • There is a DataWriter whose QoS (or whose Publisher’s QoS) is incompatible with the DataReaders.

  • At some point, the DataWriter (or Publisher) changes its QoS to be compatible with the DataReaders.

  • Then, the DataWriter writes some samples.

None of the samples were sent to the DataReaders that did not use content filtering.

[RTI Issue ID CORE-15760]

5.9.2. [Critical] Failure filtering samples on a DataReader when using DynamicData and Zero Copy

A DynamicData DataReader using a ContentFilteredTopic or QueryConditions and communicating with a DataWriter using Zero Copy transfer over shared memory may have failed to filter the received samples when the DataReader’s DynamicData TypeSupport was configured to skip sample deserialization by setting the option DynamicDataTypeSerializationProperty.skip_deserialization to true.

When this problem occurred, the DataReader generated the following error messages:

ERROR [0x0101BE35,0x47B28D9B,0x87A311F6:0x80000004{Entity=DR,MessageKind=DATA}|RECEIVE FROM 0x0101D676,0xE92E1D8E,0x91728D11:0x80000003] DDS_DynamicData2TypePlugin_serialize:error copying CDR buffer (batching is not supported)
ERROR [0x0101BE35,0x47B28D9B,0x87A311F6:0x80000004{Entity=DR,MessageKind=DATA}|RECEIVE FROM 0x0101D676,0xE92E1D8E,0x91728D11:0x80000003] PRESPsReaderQueue_evaluateSample:serialize failed
ERROR [0x0101BE35,0x47B28D9B,0x87A311F6:0x80000004{Entity=DR,MessageKind=DATA}|RECEIVE FROM 0x0101D676,0xE92E1D8E,0x91728D11:0x80000003] PRESPsReaderQueue_addQueueEntryToPolled:The sample couldn't be evaluated

With a ContentFilteredTopic, the problem only occurred when filtering was done on the DataReader side. The problem did not affect writer-side filtering.

[RTI Issue ID CORE-14539]

5.9.3. [Critical] Historical sample loss for late-joining DataReaders setting protocol.virtual_guid

A late-joining DataReader setting protocol.virtual_guid may have failed to receive historical samples from a matching DataWriter.

This issue only occurred when all of the following conditions were met:

  • writer_qos.protocol.push_on_write was set to TRUE (default) on the DataWriter.

  • The DomainParticipant containing the late-joining DataReader also contained other DataReaders on the same Topic using ContentFilteredTopics.

[RTI Issue ID CORE-15992]