Skip to content

RMW API calls hang in service request callback #124

@emersonknapp

Description

@emersonknapp

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions