-
Notifications
You must be signed in to change notification settings - Fork 18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FastDDS -> OpenDDS ownership failures #35
Comments
@jrw972 Thank you for opening the issue and for the deep analysis. I've checked the code, and it seems the issue is that Fast DDS is ignoring acknacks with count == 0 We'll change it to something like the following:
In the mean time, is there some setting you can configure in OpenDDS to make the count start in 1? |
@jrw972 I opened eProsima/Fast-DDS#4639 which should fix this, will upload a new binary after merging it. |
Unfortunately, that would require a code change. |
Closing according to the test results on this action |
Executable's name
Reproducing the problem
What is the problem?
Suggestions about why this problem exists
The output of the subscriber consisted of 87 BLUE samples followed by 55 RED samples and a truncated red sample.
Since the test driver is only looking for
max_samples_received = 125
, it would only process 38 RED samples.Since, there is no interleaving, the test fails the subscriber with RECEIVING_FROM_ONE.
Packet capture revealed the following about the conversation of the RED publisher and the subscriber.
The notation [X] indicates packet X in the attached capture.
capture.pcap.gz
Logically, the heartbeat in [84] should be deferred to at least the publication announcement in [132].
Moreover, it appears that FastDDS is ignoring the non-final preassociation acknacks [133, 160, 221].
Essentially, the delay in discovery combined with the "late" heartbeat causes the samples to be queued so that samples 16 through 99 are probably delivered at once.
This explains the output of the subscriber program.
The delay in discovery seems to be a similar problem.
OpenDDS sends a preassociation acknack for the publication writer in [64], [96], [108], and [121].
It receives a heartbeat in [122] and [124].
It then requests the publication in [128] which is sent in [132].
The publication is acknowledged in [192] after a heartbeat in [189] and [190].
Other comments
The text was updated successfully, but these errors were encountered: