4.21. OMG Specification Compliance

4.21.1. [Major] Samples of mutable types may have been dropped when bit FLAG_MUST_UNDERSTAND was set on key members

Connext may have failed to deliver samples to applications, and reported them as lost, when receiving data on a Topic whose type:

  • Has mutable extensibility.

  • Derives from another type.

  • Has at least one member marked as a key.

The failure would be triggered if the sending node set the bit FLAG_MUST_UNDERSTAND of the parameter IDs preceding each key member value in the serialized payload, as prescribed by the OMG ‘Extensible and Dynamic Topic Types for DDS’ specification.

This error may have only manifested in a cross-vendor interoperability scenario where Connext received data from a different vendor’s DDS implementation. The error could also have been triggered if receiving data from a type with members marked as “must understand,” for which the specification also requires the bit FLAG_MUST_UNDERSTAND be set in their serialized parameter IDs. Support for “must understand” members is introduced in this release. See Must-Understand Members in the RTI Connext Core Libraries Extensible Types Guide for more information.

Connext will now correctly deliver all samples on Topics whose type may have triggered this error.

Note: To maximize interoperability with previous Connext releases, Connext does not set FLAG_MUST_UNDERSTAND for key members of mutable types by default. You can change this default and force compliance with the specification by using the Extensible Types Compliance Mask.

[RTI Issue ID CORE-16465]