5.6.25. Other

5.6.25.1. [Critical] Data races on architectures with weak memory model

Several data races on systems with a weak memory architecture, such as ARM and PowerPC, have been fixed in this release. Some of these data races could have led to undefined behavior or crashes in different parts of Connext.

[RTI Issue ID CORE-14893]

5.6.25.2. [Major] Missing implementation of RTI_DL_DistLogger_get_version(), RTI_DL_DistLogger_get_api_build_version(), and RTI_DL_DistLogger_get_api_version_string()

The implementation of the APIs RTI_DL_DistLogger_get_version(), RTI_DL_DistLogger_get_api_build_version(), and RTI_DL_DistLogger_get_api_version_string() was not compiled, so using them resulted in a “function declared but not defined” failure at compile time. The APIs can now be used as expected.

[RTI Issue ID DISTLOG-243]

5.6.25.3. [Major] Incorrect update of DataWriter’s pushed_fragment_count protocol statistic under some conditions

Connext determines the need for fragmenting a sample using the configured message_size_max across all installed transports. If at least one transport requires fragmentation, Connext will fragment the sample, even if the transport ultimately used for transmission does not require it. In such a scenario (where the used transport does not require fragmentation), Connext optimizes communication by grouping all the fragments in a single DATA_FRAG sub-message.

The DataWriterProtocolStatus::pushed_fragment_count statistic was not correctly updated in this scenario. The count was increased using the number of fragments added to the DATA_FRAG sub-message instead of the actual number of DATA_FRAG sub-messages sent on the wire.

This issue occurred for asynchronous DataWriters communicating with best-effort DataReaders when the Flow Controller bytes_per_token and max_tokens configuration required fragmenting the sample anyway.

Besides the scenario described here, the pushed_fragment_count also did not update properly for synchronous best-effort communications when fragmentation was required and a ContentFilteredTopic was involved.

The pushed_fragment_count statistics are now accurate.

[RTI Issue ID CORE-14737]

5.6.25.4. [Minor] IDL annotations printed after typdef specifier

When using to_string on IDL types where annotations (such as @default) and a typedef were specified, those annotations were printed after the typedef specifier. This behavior has been changed to print the typdef specifier after the necessary annotations.

[RTI Issue ID CORE-14857]