5.2.5. Other

5.2.5.1. [Critical] Excessive bandwidth usage in synchronization protocol

Releases 7.5.0 and 7.3.0.10 introduced a new, more efficient synchronization protocol. However, a defect in this protocol could have led to excessive bandwidth consumption.

For certain Topics, a Persistence Service may have repeatedly switched its selected provider, resulting in unnecessary metadata traffic that could grow significantly over time.

[RTI Issue ID PERSISTENCE-446]

5.2.5.2. [Critical] Synchronization protocol failed when multiple persistence groups matched same Topic

In previous releases, the synchronization protocol—enabled by setting <synchronization>/<data_synchronization>/<enable> to TRUE—did not function as expected when a Persistence Service instance belonged to multiple persistence groups matching the same Topic.

As a result, data may not have been properly synchronized or received by the application’s DataReaders.

For example:

<persistence_service name="PS">
        <synchronization>
            <data_synchronization>
                <enable>true</enable>
            </data_synchronization>
        </synchronization>
        <participant name="PRSTParticipant">
            <persistence_group name="PRSTGroup_0">
                <filter>Foo</filter>
            </persistence_group>
            <persistence_group name="PRSTGroup_1">
                <filter>Foo</filter>
            </persistence_group>
        </participant>
    </persistence_service>

[RTI Issue ID PERSISTENCE-438]

5.2.5.3. [Critical] Unexpected error messages when enabling synchronization

In release 7.3.0.10, the following error messages may have occurred when enabling synchronization in Persistence Service:

ERROR [ON PROVIDER SELECTION] PERSISTENCESyncState_getServiceTopicForRemoteProvider:FAILURE | Unexpected provider GUID in 6_syncRemoteProviderReaderTable record; expected provider GUID=8264B0D756D740F44F9043E874AB0060, found provider GUID=BC30414365841DF33EA2E3F2F65FCB4D
ERROR [ON PROVIDER SELECTION] PERSISTENCESyncState_getFilterChangeInfoForProvider:FAILED TO FIND | service topic for provider-source record
ERROR [ON PROVIDER SELECTION] PERSISTENCESyncState_updateServiceTopicFilters:FAILED TO GET | filter change info for provider
ERROR [ON PROVIDER SELECTION] PERSISTENCESyncState_getServiceTopicForRemoteProvider:FAILURE | Unexpected provider GUID in 6_syncRemoteProviderReaderTable record; expected provider GUID=8264B0D756D740F44F9043E874AB0060, found provider GUID=BC30414365841DF33EA2E3F2F65FCB4D
ERROR [ON PROVIDER SELECTION] PERSISTENCESyncState_getFilterChangeInfoForProvider:FAILED TO FIND | service topic for provider-source record
ERROR [ON PROVIDER SELECTION] PERSISTENCESyncState_updateServiceTopicFilters:FAILED TO GET | filter change info for provider

These messages were harmless unless you had more than one persistence group in Persistence Service matching the same Topic.

[RTI Issue ID PERSISTENCE-437]

5.2.5.4. [Minor] Error could occur when running Valgrind with data synchronization enabled

When Persistence Service ran under Valgrind with <data_synchronization> enabled, the following Valgrind error could occur:

Source and destination overlap in memcpy

This error only occurred when the source and destination addresses reported by Valgrind were identical. Therefore, this was a benign issue and no data corruption would occur.

[RTI Issue ID PERSISTENCE-424]