eclipse-iceoryx / iceoryx

Eclipse iceoryx™ - true zero-copy inter-process-communication
https://iceoryx.io
Apache License 2.0
1.57k stars 373 forks source link

publisher got error after loaned 8 sample #2307

Closed sgf201 closed 1 week ago

sgf201 commented 1 week ago

I tried to buffer 10 frames to avoid the possibility of decoder blocking, but in reality, after loaned 8 sample, it give me an error. Is there a configuration for the number of samples that publisher can retain(not publish)?

[decodec-1] 1
[decodec-1] 2
[decodec-1] 3
[decodec-1] 4
[decodec-1] 5
[decodec-1] 6
[decodec-1] 7
[decodec-1] 8
[decodec-1] 
[decodec-1] >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
[decodec-1] This error state is being overwritten:
[decodec-1] 
[decodec-1]   'Failed to get loan, at /opt/src/ros2/rmw_cyclonedds/rmw_cyclonedds_cpp/src/rmw_node.cpp:1376'
[decodec-1] 
[decodec-1] with this new error message:
[decodec-1] 
[decodec-1]   'sample_ptr is null, at /opt/src/ros2/rmw_cyclonedds/rmw_cyclonedds_cpp/src/rmw_node.cpp:2625'
[decodec-1] 
[decodec-1] rcutils_reset_error() should be called after error handling to avoid this.
[decodec-1] <<<
[decodec-1] terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'
[decodec-1]   what():  failed to borrow loaned msg: sample_ptr is null, at /opt/src/ros2/rmw_cyclonedds/rmw_cyclonedds_cpp/src/rmw_node.cpp:2625
elfenpiff commented 1 week ago

@sgf201 Since it seems to originate from the CycloneDDS node, could you please create an issue there as well: https://github.com/eclipse-cyclonedds/cyclonedds

You can keep this open since I would not exclude a misbehavior on the iceoryx side but first we have to exclude cyclone dds before we dig deeper into this.

elBoberido commented 1 week ago

@sgf201 this is indeed limited in iceoryx. You can change the value by setting the -DIOX_MAX_CHUNKS_ALLOCATED_PER_PUBLISHER_SIMULTANEOUSLY=12 cmake option. By default it is set to 8.

I don't know how this can be set when building Cyclone DDS. Something to ask on their repo.

Can we close this issue?