5.1. Discovery

5.1.1. [Critical] SPDP2 participants with RTPS peers and participant_liveliness_assert_period less than participant_announcement_period may have crashed upon deletion *

Applications with DomainParticipants using SPDP2, with RTPS initial_peers (that is, peers prefixed with rtps@) and a participant_liveliness_assert_period less than the participant_announcement_period, may have crashed upon deleting the participant.

[RTI Issue ID CORE-14089]

5.1.2. [Major] Rediscovery failed if participant with SPDP2 lost liveliness before receiving remote participant’s configuration message *

For participants with SPDP2, participant discovery is only considered “complete” after a local participant has received both a bootstrap message (DATA(Pb)) and a configuration message (DATA(Pc)) from a remote participant. If the local participant does not receive a configuration message from the remote participant within the remote participant’s participant_liveliness_lease_duration after receiving the bootstrap message, then the local participant will consider the remote participant to be unalive and can remove it. In previous releases, if the remote participant regained liveliness and sent additional bootstrap messages to the local participant, the local participant failed to rediscover the remote participant. This bug only affected a liveliness loss that occurred before participant discovery completed; participants that lost liveliness after participant discovery completed could be correctly rediscovered. Now, a local participant will successfully rediscover a remote participant that loses liveliness before participant discovery completes.

[RTI Issue ID CORE-13386]

5.1.3. [Major] Participants with SPDP2 failed to discover new participant that was using the same unicast locator as a previously discovered (and not removed) participant *

A DomainParticipant with SPDP2 failed to discover a new participant that had the same unicast locators as a previously discovered participant if that participant had not been removed. For example, Participant A and Participant B discover each other. Participant B then shuts down ungracefully (for example, the process receives a SIGINT signal without a signal handler attached to shut down the participant) and does not send a dispose message to Participant A. Participant A still thinks Participant B is alive until Participant B’s participant_liveliness_lease_duration passes. A new process is then launched which starts Participant C on the same host as Participant B, giving it the same locators as Participant B. Participant C sends a bootstrap message to Participant A; however, Participant A does not respond with additional bootstrap messages because it stopped sending bootstrap messages to those locators. Participant C then cannot discover Participant A because it will never receive a bootstrap message from it. Once Participant A removed Participant B, Participant A could send bootstrap messages to Participant C.

This problem has been fixed. Participant A will now be able to send bootstrap messages to Participant C’s locators even when Participant B is still considered “alive”, so discovery can complete.

[RTI Issue ID CORE-14048]



* This bug does not affect you if you are upgrading from 6.1.x or earlier.