Skip to content

Backport #1089 to jazzy#1090

Merged
aaronchongth merged 1 commit into
jazzyfrom
backport/jazzy-1089
Jun 15, 2026
Merged

Backport #1089 to jazzy#1090
aaronchongth merged 1 commit into
jazzyfrom
backport/jazzy-1089

Conversation

@aaronchongth

Copy link
Copy Markdown
Member

(cherry picked from commit 0ee3494)

GenAI Use

We follow OSRA's policy on GenAI tools

  • I used a GenAI tool in this PR.
  • I did not use GenAI

Generated-by:

…1089)

RMF's request/response channel is a pub/sub pseudo-service, so more than one node can answer the same request_id (the RmfService docstring already notes clients must drop duplicated response ids). _handle_response dropped only *unknown* ids; for a known id it called fut.set_result() unconditionally.

A second response for an already-resolved future raises asyncio.InvalidStateError inside the subscription callback, which runs in the rclpy.spin() thread (ros.py) and terminates it. After that the api-server node stops processing every subscription, so all task-api calls time out with HTTP 500 "rmf service timed out" even though the request was delivered and executed.

Drop duplicate/late responses (fut.done()) so the spin thread survives, and add a regression test.

Signed-off-by: levonti <levonti@ileo.cloud>
Co-authored-by: levonti <levonti@ileo.cloud>
(cherry picked from commit 0ee3494)
Signed-off-by: Aaron Chong <aaronchongth@gmail.com>
@mxgrey mxgrey added this to PMC Board Jun 15, 2026
@github-project-automation github-project-automation Bot moved this to Inbox in PMC Board Jun 15, 2026
@aaronchongth
aaronchongth requested a review from koonpeng June 15, 2026 07:02
@aaronchongth
aaronchongth merged commit dbee3f9 into jazzy Jun 15, 2026
2 of 3 checks passed
@aaronchongth
aaronchongth deleted the backport/jazzy-1089 branch June 15, 2026 07:59
@github-project-automation github-project-automation Bot moved this from Inbox to Done in PMC Board Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants