-
Notifications
You must be signed in to change notification settings - Fork 74
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] Failure to receive large samples #291
Comments
This may be a compatibility issue with Zenoh master as it works when using Zenoh 0.10.0-rc. Increasing Z_FRAG_MAX_SIZE allows increasingly larger sample sizes to be successfully sent. |
I confirm, this looks like a regression from Zenoh starting from hop-to-hop compression. |
The size of the RX buffer should depend on wether the link is streamed or not. In case it is streamed, we need to account also for the 2 bytes indicating the batch length. The compression PR fixed that behaviour in Zenoh Rust. However, by doing so, it broke fragmentation compatibility with Zenoh-Pico since those 2 bytes are not accounted. As a temporary fix, I've created this PR: eclipse-zenoh/zenoh#630 .
Some work may be required to overcome the
|
I've tested 479c173 s and it works against eclipse-zenoh/zenoh@780ec60. |
#297 has been merged. Before closing this issue, @gmartin82 can you please verify on your side that everything is now working as expected? |
I've tried a range of sample sizes from 8 bytes to 512 Mbytes in client mode and everything appears to be working as expected with the master versions of Zenoh and Zenoh Pico. However, I am still experiencing communication issues between publishers and subscribers in peer mode. After sending some samples successfully communication freezes up. It doesn't happen every time but seems to be happening often. |
Peer mode on UDP multicast doesn't have any reliability. So, it's normal in case of fragmentation to loose data. Do you see data going on the network e.g. with Wireshark? |
Yes I can see data flowing on the network with Wireshark. if I disable reliability Cyclone DDS is exhibiting the same behavior so I think you’re right that this is due to UDP multicast lacking reliability. |
I reran my tests overnight on my faster desktop machine and my results still show some issues. Many of the earlier tests (< 64 KB sample sizes) failed. Later tests (>256 KB) also failed. Zenoh commit #788172b0360caa38db24ec2d238734a2ebf40d32 |
I think something weird in the tests for payload < zenoh-pico/include/zenoh-pico/config.h Line 309 in a0b421c
|
I think you're right for sample sizes > 256 KB. I hadn't overridden the maximum fragment size. |
Should we close this issue? |
Closing as it worked as expected once the maximum fragment size was increased. |
Describe the bug
In client mode, I have encountered an issue with receiving samples >= 32 KB. Samples appear to be published successfully to a Zenoh Router but are not received by a subscribing application. The exact size which triggers the issue seems to vary from application to application.
To reproduce
Start a Zenoh router:
Start a Zenoh Pico subscriber:
Start a Zenoh Pico publisher with large, randomly generated character data:
Observe that samples are not received by
z_sub
.System info
Platform: Ubuntu 22.04 64-bit
CPU: Intel i7-1260P
Zenoh version: master (eclipse-zenoh/zenoh@9f7a37e)
Zenoh Pico version: master (ae3c237)
The text was updated successfully, but these errors were encountered: