4.20. Data Corruption
4.20.1. [Critical] Data corruption in Monitoring Library 2.0 due to race condition during event and log processing
A race condition in Monitoring Library 2.0 could lead to a use-after-free condition, resulting in data corruption.
Monitoring Library 2.0 processes events and log messages asynchronously using multiple internal threads. If a cleanup pass was attempted while another thread was busy processing events or log messages, the cleanup pass was silently skipped. Over time, this could leave stale references to memory that had already been freed.
Once a dangling reference existed, Monitoring Library 2.0 could read or write corrupted data, leading to undefined behavior.
[RTI Issue ID MONITOR-765]
4.20.2. [Major] Monitoring Library 2.0 failed to create dependent Entities when type_object_max_serialized_length and type_code_max_serialized_length were 0 *
Monitoring Library 2.0 did not detect types when
type_object_max_serialized_length and
type_code_max_serialized_length were set to 0 in the
DomainParticipantResourceLimits QoS policy. As a result, all dependent
Entities (Topics, DataReaders, and DataWriters) were not created.
Monitoring Library 2.0 now correctly handles types when they are not configured for distribution, and all dependent Entities are created.
[RTI Issue ID MONITOR-744]
4.20.3. [Minor] Converting a GUID_t to a BuitinTopicKey_t had issues when high bit was set
This issue was fixed in release 7.6.0, but not documented at that time.
The BuiltinTopicKey_t.from_guid() method failed to convert properly
if the incoming GUID_t had a byte pattern that set the highest bit
in the resulting four-segment number in the conversion.
[RTI Issue ID CORE-15492]
* This bug does not affect you if you are upgrading from 7.3.x or earlier.