fix(trace): align library and runner clocks by wall time#41329
Open
SebTardif wants to merge 1 commit into
Open
fix(trace): align library and runner clocks by wall time#41329SebTardif wants to merge 1 commit into
SebTardif wants to merge 1 commit into
Conversation
When APIRequestContext runs in a different process (e.g. remote run-server in Docker), its monotonic clock is unrelated to the test runner's. Align each library context by the wallTime/monotonicTime pair recorded at chunk start, falling back to stepId matching for older traces. Fixes microsoft#40068
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.
Summary
Fixes #40068
Problem
When
APIRequestContextruns in a different process (e.g. remote run-server in Docker), its monotonic clock is unrelated to the test runner's. The trace merger only aligned clocks via a sharedstepId, which does not exist for API fixture setup inbeforeAll. The timeline then spanned the gap between process uptimes (often hours).Prior art
Same approach as #40089 (approved by yury-s, not merged). Clock alignment logic introduced in #33935 (2024-05-09).
Verification
Red step (without fix):
model.endTime= 5001000 (~83 minutes on timeline)Green step (with fix):
model.endTime= 6100 (1.1s span)