-
Notifications
You must be signed in to change notification settings - Fork 181
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
[eCAL 6] Linux - SHM Subscribers can appear connected but do not receive data #1914
Comments
Ahaha, reproduced the problem in CI with a modified test case https://github.com/DownerCase/ecal/actions/runs/12828875683/job/35773823178#step:11:897 so not specific to my setup 😄 |
Testing different config settings to narrow down the problem:
Problem appears to be with the SHM transport layer. Log from good UDP transport
Log from bad SHM transport
Nothing leaps out when diffing the two, the structure of the logs appears functionally identical. |
Didn't get too close with this. I could see that in the zombie case sync events were being sent but somehow not received on the other end... Address and undefined behaviour sanitizers didn't report anything but thread sanitizer was extraordinarily upset. I'll work through the various synchronization errors in the vain hope one of them will help... |
Ok, I've found that disabling the call to ecal/ecal/core/src/ecal_event.cpp Line 180 in 4bbe51c
What is happening is that:
|
Thanks for debugging into this issue so much. Maybe we should take a step back, and see what kind of behavior we we would like to see.
I guess there are pros / cons to both approaches. |
Preliminary fixed by #1943. |
Status: Problem understood. When only a single subscriber for a topic is present, unsubscribing and resubscribing in less than the registration timeout period will result in the subscriber using a stale SHM file and be unable to receive new messages.
Extracted from #1880 (comment)
Problem Description
I found that with eCAL monitor applications when inspecting messages from topic A, switching to topic B, and then returning to topic A the application will no longer receive any messages, despite it indicating being connected.
How to reproduce
cmake --preset cli
cmake --build --preset cli
./out/cli/build/bin/ecal_mon_tui
./out/cli/build/bin/ecal_sample_person_snd
./out/cli/build/bin/ecal_sample_minimal_snd
How did you get eCAL?
Built from source
Environment
eCAL System Information
The text was updated successfully, but these errors were encountered: