Fix JSRPC Return event timing to fire when handler returns#5721
Merged
Fix JSRPC Return event timing to fire when handler returns#5721
Conversation
Collaborator
Author
|
Yes, I know using timing for tests is unreliable. |
jasnell
reviewed
Dec 17, 2025
jasnell
approved these changes
Dec 17, 2025
Previously, the Return tracing event for JSRPC calls was emitted when the entire session completed (after all streams were consumed and capabilities released). This was incorrect - the Return event should mark when the handler returned a value, not when all data transfer finished. Move setReturn() from JsRpcSessionCustomEvent::run() completion to EntrypointJsRpcTarget::call() completion. This ensures the Return event fires at the correct time in the request lifecycle. Add tests that validate: - Return event occurs before Outcome event - Return event occurs at least 200ms after onset (handler work time) - Gap between Return and Outcome is at least 200ms (stream drain time)
a076a2f to
f840511
Compare
danlapid
commented
Dec 17, 2025
mar-cf
approved these changes
Dec 18, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Previously, the Return tracing event for JSRPC calls was emitted when the entire session completed (after all streams were consumed and capabilities released). This was incorrect - the Return event should mark when the handler returned a value, not when all data transfer finished.
Move setReturn() from JsRpcSessionCustomEvent::run() completion to EntrypointJsRpcTarget::call() completion. This ensures the Return event fires at the correct time in the request lifecycle.
Add tests that validate: