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.