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

ros-humble-bondcpp crashes with statemap::TransitionUndefinedException #100

Open
TSNoble opened this issue Nov 14, 2024 · 0 comments
Open

Comments

@TSNoble
Copy link

TSNoble commented Nov 14, 2024

Issue

When using the package ros-humble-bondcpp, bonds throw a statemap::TransitionUndefinedException shortly after starting. I believe this may be related to #82 and #97

System

Platform: ROS Humble Image (Ubuntu 22.04)
Bond: 3.02 built from source (I believe the version used by ros-humble-bondcpp)

Reproduction Steps

  1. Clone https://github.com/TSNoble/bond_crash
  2. Run docker compose build (this will build bond and the example from source)
  3. Run docker compose up (this will run two nodes that create and start a bond)
  4. Wait a few seconds for the crash

Expected Behaviour

The nodes should stay alive

Actual Behaviour

The nodes crash with a statemap::TransitionUndefinedException

Workarounds

  • Switching the Dockerfile to use bond 4.1.0 or ros2 appears to fix the issue, though this would mean building from source
  • Replacing Node with a LifecycleNode and starting the bond within the node's on_activated callback seems to fix the issue
  • Given 3.0.2 is 2 years old, would it be possible to produce an up-to-date binary for humble?

Logs

example-1  | [INFO] [launch]: All log files can be found below /root/.ros/log/2024-11-14-17-39-41-914428-docker-desktop-1
example-1  | [INFO] [launch]: Default logging verbosity is set to INFO
example-1  | [INFO] [bond_node-1]: process started with pid [65]                                                                                                                                                                              
example-1  | [INFO] [bond_node-2]: process started with pid [67]
example-1  | [bond_node-2] terminate called after throwing an instance of 'statemap::TransitionUndefinedException'                                                                                                                            
example-1  | [bond_node-2]   what():  no such transition in current state
example-1  | [bond_node-1] terminate called after throwing an instance of 'statemap::TransitionUndefinedException'                                                                                                                            
example-1  | [bond_node-1]   what():  no such transition in current state                                                                                                                                                                     
example-1  | [ERROR] [bond_node-2]: process has died [pid 67, exit code -6, cmd '/workspace/install/bond_crash/lib/bond_crash/bond_node --ros-args -r __node:=bond_node_2'].                                                                  
example-1  | [ERROR] [bond_node-1]: process has died [pid 65, exit code -6, cmd '/workspace/install/bond_crash/lib/bond_crash/bond_node --ros-args -r __node:=bond_node_1']. 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant