Skip to content
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] Zenoh router doesn't seem to work with @appendable data #105

Open
alknemeyer opened this issue Nov 28, 2022 · 4 comments
Open

[Bug] Zenoh router doesn't seem to work with @appendable data #105

alknemeyer opened this issue Nov 28, 2022 · 4 comments
Labels
bug Something isn't working

Comments

@alknemeyer
Copy link

Describe the bug

I use Zenoh plugin to access DDS data via VPN (ie the router configuration). This works well when the data types are annotated with @final (the current default) but fails when the types are annotated with @appendable.

I don't see reference to XTypes in this repository, although I'm not familiar with it (@appendable is a relatively new feature).

Is this expected behavior?

To reproduce

  1. Create a data type in an IDL file and annotate it with either @final or @appendable
  2. Create a publisher and a subscriber
  3. Run the publisher on computer A, as well as a Zenoh bridge: docker run --init --rm --net=host eclipse/zenoh-bridge-dds:0.6.0-beta.1 --no-multicast-scouting -l tcp/0.0.0.0:7447
  4. Run a VPN, and run the subscriber on computer B. Run a second Zenoh bridge: docker run --init --rm --net=host eclipse/zenoh-bridge-dds:0.6.0-beta.1 --no-multicast -scouting -m peer -e tcp/$IP:7447

If the data type is @final, this works. If it's @appendable, it doesn't.

System info

  • DDS implementation: CycloneDDS v0.10.2
  • VPN: WireGuard
  • Platform: CentOS Stream 8
  • CPU: AMD Ryzen 9 5950X
@alknemeyer alknemeyer added the bug Something isn't working label Nov 28, 2022
@JEnoch
Copy link
Member

JEnoch commented Nov 29, 2022

The 0.6.0-beta.1 version relies on CycloneDDS 0.7.0 which wasn't supporting XTypes yet.
Thus CycloneDDS in the Zenoh plugin probably drops the DATA message with XCDR encoding flag, as it's considered as not compatible.
Note that a @final type is equivalent to a "non-extended" IDL type, and thus is sent with the CDR flag that is supported by 0.7.0.

In master branch, zenoh-plugin-dds now relies on CycloneDDS 0.10.2 which supports XTypes.
Can you please test with it using the eclipse/zenoh-bridge-dds:master image ?

@alknemeyer
Copy link
Author

alknemeyer commented Nov 29, 2022

Thanks, I thought it might be something like that. Unfortunately the latest image has the same bevahiour with respect to the @appendable topic.

$ docker images
REPOSITORY                                                         TAG                               IMAGE ID       CREATED             SIZE
eclipse/zenoh-bridge-dds                                           master                            4b34d917df75   About an hour ago   23.5MB

@alknemeyer
Copy link
Author

I don't know if it's relevant, but this error log is new to me:

[2022-11-29T16:23:05Z WARN  zenoh::session] Received ReplyData for unkown Query: 68
[2022-11-29T16:23:05Z WARN  zenoh::session] Received ReplyFinal for unkown Query: 68
[2022-11-29T16:23:05Z WARN  zenoh::session] Received ReplyData for unkown Query: 71

@stevemcnamaraultra
Copy link

stevemcnamaraultra commented Jul 11, 2024

Would it be possible to confirm that this is still a known issue please?

I am currently suffering this problem - any data marked as @appendable fails to route through the bridge.

This error though only occurs if my participant creates a publisher for a topic and then creates a subscriber on the same topic.

An error message is reported by the bridge when it attempts to handle a subscriber created by my application:

2024-07-11T10:15:11.324110Z DEBUG async-std/runtime ThreadId(11) zenoh_plugin_dds::route_zenoh_dds: Route Zenoh->DDS (SERVICEINFO -> SERVICEINFO): create DDS Writer
2024-07-11T10:15:11.324145Z ERROR async-std/runtime ThreadId(11) zenoh_plugin_dds: Route Zenoh->DDS (SERVICEINFO -> SERVICEINFO): creation failed: Error creating DDS Writer: Bad Parameter

If the topic is changed to marked it as @Final it works as expected.

I am using the latest CycloneDDS build (that I build myself using type discovery enabled and topic discovery enabled) and a pre-built zenoh_dds_bridge.

Thanks for your assistance with this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants