-
Notifications
You must be signed in to change notification settings - Fork 59
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
[Bug] Crash with Cyclone 0.10.5 ping pong examples #346
Comments
@gabrik was the binary built with support for the 'zenoh-plugin-ros2dds' included? The ROS2 and DDS plugins use different versions of the cyclors library and it looks like when a binary is built with both of these plugins included there is a clash between the versions. In the stack trace it can be seen that cyclors 0.2.1 is being invoked whereas the DDS plugin should be using cyclors 0.3.1. |
Yes, that's the case. |
In this case, Cyclone DDS is calling back to Rust when a sample is received. The issue is possibly caused by combining multiple versions of the Cyclone C library into a single binary. |
Yeap but:
So rust does know that there are 2 different version, and know which plugin belongs to which version
the only way the DDS plugin can call the "wrong"
Nevermind the underlying CycloneDDS C function will always have the same name, thus it will not solve. |
Yes, I think C functions are likely being "overwritten" during linking. It might be possible to "mangle" the Cyclone symbols (possibly by adding a prefix) to make them unique for each version of Cyclors. This is something that might be worth investigating if we do need to use multiple versions of Cyclone at once. |
Solved by #376 |
Describe the bug
The pluing crashes on discovery of ping/pong participants.
Cause seems:
To reproduce
Start the bridge
Start ping pong exampls
System info
All
The text was updated successfully, but these errors were encountered: