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

RMW API calls hang in service request callback #124

Open
emersonknapp opened this issue Jun 22, 2023 · 2 comments
Open

RMW API calls hang in service request callback #124

emersonknapp opened this issue Jun 22, 2023 · 2 comments
Assignees

Comments

@emersonknapp
Copy link
Contributor

System Info

  • OS
    • Ubuntu 22.04
  • ROS version and installation type
    • rolling/source
  • RTI Connext DDS version and installation type
    • Pro 6.0.1/apt
  • RMW version or commit hash
    • rolling

Bug Description

When a service callback is registered with rcl_service_set_on_new_request_callback, if rmw_take is called within that callback, a deadlock occurs and the program hangs.

Expected Behavior

Either the API allows this behavior and it works, or it is explicitly disallowed and returns an error code.

How to Reproduce

Run the test in ros2/rcl#1081

Workarounds

#123 fixes the problem from what I can tell, but I'm not 100% sure it's a good idea

@emersonknapp
Copy link
Contributor Author

@asorbini - maybe you could take a look and see what you think about the problem / proposed fix. You can see my investigation at ros2/rcl#1052 (comment) where I figured out the issue, shows stack traces.

@emersonknapp
Copy link
Contributor Author

@asorbini could you take a look at this?

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

2 participants