4.8. Other
4.8.1. [Critical] Unexpected errors when enabling data synchronization *
Release 7.5.0 introduced a new, more efficient synchronization protocol. However, enabling this protocol may have caused Persistence Service to stop synchronizing due to unexpected errors similar to the following:
ERROR [ON PROVIDER SELECTION|0xFD1509BF,0xA0B14279,0xA3EC0433:0x80000002{Entity=DW,Topic=SyncAnnouncement,Type=RTI::PersistenceService::Sync::Announcement,Domain=5}|WRITE] COMMENDFacade_canSampleBeSent:NOT SUPPORTED | Fragment data not supported by this writer.
ERROR [ON PROVIDER SELECTION|0xFD1509BF,0xA0B14279,0xA3EC0433:0x80000002{Entity=DW,Topic=SyncAnnouncement,Type=RTI::PersistenceService::Sync::Announcement,Domain=5}|WRITE] COMMENDSrWriterService_write:sample cannot be sent
ERROR [ON PROVIDER SELECTION|0xFD1509BF,0xA0B14279,0xA3EC0433:0x80000002{Entity=DW,Topic=SyncAnnouncement,Type=RTI::PersistenceService::Sync::Announcement,Domain=5}|WRITE] PRESPsWriter_flushBatchWithCursor:FAILED TO SEND | Reliable write
ERROR [ON PROVIDER SELECTION|0xFD1509BF,0xA0B14279,0xA3EC0433:0x80000002{Entity=DW,Topic=SyncAnnouncement,Type=RTI::PersistenceService::Sync::Announcement,Domain=5}|WRITE] PRESPsWriter_writeBatchInternal:!error flushing batch
ERROR [ON PROVIDER SELECTION] PERSISTENCESyncManager_onSendAnnouncement:FAILURE | write Sync Announcement sample (domain Id: 5)
This problem only occurred when Connext transports were configured with a small transport MTU (for example, 1500 bytes). For instance:
<domain_participant_qos>
. <transport_builtin>
<mask>UDPv4</mask>
<udpv4>
<message_size_max>1500</message_size_max>
</udpv4>
</transport_builtin>
</domain_participant_qos>
[RTI Issue ID PERSISTENCE-480]
4.8.2. [Critical] Data synchronization may have stopped working in PERSISTENT mode *
Release 7.5.0 introduced a new, more efficient synchronization protocol. However, enabling this protocol may have caused Persistence Service to stop synchronizing after running for some time. The issue may have occurred sooner if new applications frequently started sending data to Persistence Service.
This problem only affected configurations where:
Persistence Service was running in PERSISTENT mode (i.e., storing samples on disk).
The
<writer_in_memory_state>parameter was set to FALSE (in memory state disabled) for the affected persistence groups.
[RTI Issue ID PERSISTENCE-478]
4.8.3. [Critical] Unexpected PERSISTENCESyncState_onAliveDataAnnouncement:FAILED TO ASSERT errors when synchronization enabled *
Release 7.5.0 introduced a new, more efficient synchronization protocol. In that release, an error like the following may have occurred when enabling synchronization:
ERROR PERSISTENCESyncState_onAliveDataAnnouncement:FAILED TO ASSERT | 2_syncRemoteProviderSourceTable record (retcode: 33827849)
ERROR PERSISTENCESyncState_onAfterSampleReceivedFromSource:FAILED TO UPDATE | remote provider source
ERROR PERSISTENCESyncManager_onAfterSampleReceivedFromSource:FAILURE | cannot update Synchronization State after sample received from source
The error only occurred if you had multiple persistence groups matching the same Topic. 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>
As a result, data may not have been properly synchronized or received by the application’s DataReaders.
[RTI Issue ID PERSISTENCE-469]
4.8.5. [Minor] Precondition error when synchronization enabled *
Running the debug version of Persistence Service with synchronization enabled could trigger the following precondition error:
RTI0x300003a:!precondition: "reader == ((void *)0)"
This error did not affect the correctness of the service.
[RTI Issue ID PERSISTENCE-483]
* This bug does not affect you if you are upgrading from 7.3.x or earlier.