question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Executor spin_once must check wait_for_ready_callbacks returns None

See original GitHub issue
  • Operating System:
    • Ubuntu 18.04
  • Installation type:
    • ubuntu packages
  • Version or commit hash:
    • Dashing
  • Client library (if applicable):
    • rclpy

When developping a node that has a timer and Action clients, and having a MultiThreadExecutor manage the callbacks, I encoutered the following issue when trying to shutdown the executor from the timer callback:

File "/home/lesire/Work/MUST/ros2_ws/build/oara/oara/actor.py", line 40, in run
    self._executor.spin()
  File "/opt/ros/dashing/lib/python3.6/site-packages/rclpy/executors.py", line 273, in spin
    self.spin_once()
  File "/opt/ros/dashing/lib/python3.6/site-packages/rclpy/executors.py", line 695, in spin_once
    handler, entity, node = self.wait_for_ready_callbacks(timeout_sec=timeout_sec)
TypeError: 'NoneType' object is not iterable

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:8 (7 by maintainers)

github_iconTop GitHub Comments

1reaction
ivanpaunocommented, Aug 5, 2020

@ivanpauno Are you sure that we need to backport #574 to Dashing? The backport won’t be trivial, as I noted in #574 (comment): the fix breaks tests in Eloquent (#584) and doesn’t merge cleanly into Dashing. I suspect we will see at least the same test failures as we did in Eloquent after addressing the merge conflicts in Dashing.

What I mean is that this is still a bug in Dashing (where the bug is being reported). We can either fix it, add it to known bugs, or mark the issue as help wanted.

But I don’t think that marking the ticket as solved is correct. This is still a bug in the distribution it was reported, and backporting the fix applied on master doesn’t seem trivial.

0reactions
sloretzcommented, Jul 16, 2022

Dashing is EOL. Closing.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Execution and Callbacks — rclpy 0.6.1 documentation
This is used to tell the executor when entities are created or destroyed. Return type. None. exception rclpy.executors. ExternalShutdownException ...
Read more >
Executors — ROS 2 Documentation: Rolling documentation
Run the executor. rclcpp::spin(node); // Shutdown and exit. ... return 0; } ... The callback group must be stored throughout execution of the...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found