Skip to content

fix: run queued peer operations after the runtime stopped its timer - #431

Merged
devopvoid merged 2 commits into
mainfrom
fix/closed-peer-operation-timer
Oct 24, 2026
Merged

devopvoid merged 2 commits into
mainfrom
fix/closed-peer-operation-timer

Conversation

@devopvoid

Copy link
Copy Markdown
Owner

A closing runtime stops its timer while control tasks queued before still run. An operation that reached a peer then still scheduled its timeout, even when the closed peer had already failed it, and the rejection went to the error handler. This made HttpSessionTests.lateAnswerDeleted fail now and then on macOS.

  • Operations that are already done get no timeout.
  • The operation, gathering and collision timers are skipped once the timer rejects; the runtime's close fails what is left open.

A closing runtime stops its timer while control tasks queued before still run. An operation reaching a peer then still scheduled its timeout, even when the closed peer had failed it already, and the rejection went to the error handler, which made HttpSessionTests.lateAnswerDeleted fail now and then. Operations that are done need no timeout, and the operation, gathering and collision timers are skipped once the timer rejects.
…tion-timer

# Conflicts:
#	webrtc/src/test/java/dev/onvoid/webrtc/client/RuntimeCloseTests.java
@devopvoid
devopvoid merged commit 2b0d719 into main Oct 24, 2026
22 checks passed
@devopvoid
devopvoid deleted the fix/closed-peer-operation-timer branch October 24, 2026 08:23
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

Successfully merging this pull request may close these issues.

1 participant