-
Notifications
You must be signed in to change notification settings - Fork 233
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
Wait Set Index Too Big #1381
Comments
Could you try using FastDDS (instead of cyclone_dds) to check if the problem still occurs in your environment ? |
Sure. I can give this a shot. Would service call would cause a QoS event added to the wait set? This seems to be the source of the bug. |
Neither cyclone_dds or fastrtps_cpp works. |
While creating publisher and subscription, you can set event_callbacks. BTW, how did you determine it's related to the QoS Event? rclpy/rclpy/src/rclpy/wait_set.cpp Lines 157 to 197 in b488272
|
I have a similar error and cannot understand its origin. I use Galactic and ubuntu 20.04. I am not sure if in my case the error is related to the QoS event, but it seems to be related to the number of active nodes, the number of active subscribers/publishers I have or the Thread itself that is causing internal issues. Has anyone managed to solve the issue? Edit: |
I have analyzed the issue, but currently, there's not enough information to pinpoint the cause. |
Unfortunately, for various reasons, we cannot change versions of ROS2 and have to stay on Galactic. Additional information on the nature of the error and the working context:
Summary:
Hypothesis: Is it possible that the problem stems from the use of threads and that the scheduler cannot handle all the tasks correctly? |
@JasmineRosselliSUPSI
Which type of executor is used for the "Collector"? ISingleThreadedExecutor or the MultiThreadedExecutor? I think this information still doesn't help me pinpoint the specific problematic code. |
@Barry-Xu-2018 I have to admit I'm not sure which type of executor I'm using. The "Collector" is a class of type I'm using Spyder and VSCode. I compile ROS2 packages using Additional infos: My colleagues and I have noticed that launching ROS2 nodes using a subprocess can cause some problems. The info "Collector" is now launched in the secondary Raspberry. It uses a thread to manage the main functions and launches the "Collector" in a subprocess. The information are provided to other nodes via a service. When the "Collector" have to provide an heavy messages (in this case a SLAM generated map, about 42x42 pixels), at the second call the node freezes. The service make the request but receives no answer. With small messages (like, e.g., asking for the robot position), this problem does not arise. This problem DOES NOT appear if the node is launched separately, from another terminal (same raspberry). No error message is displayed, but the ‘Collector’ no longer responds. At this point, it could be a problem related to subprocesses? |
Bug report
Required Info:
Steps to reproduce issue
Expected behavior
Actual behavior
Additional information
I cannot provide the code I am using to allow you to reproduce this bug, but it is a rclpy process that has a single MultiThreadedExecutor. The executor spins three nodes, and always gets hung up on this self.executor.spin_until_future_complete(self.future) with a wait set index bug.
Any advice on how to approach this problem would be much appreciated.
Feature request
Feature description
Implementation considerations
The text was updated successfully, but these errors were encountered: