-
Notifications
You must be signed in to change notification settings - Fork 18k
internal/trace/v2: TestTraceAnnotations failures #65181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Found new dashboard test flakes for:
2024-01-19 21:39 dragonfly-amd64-622 go@7cb98c1d internal/trace/v2.TestTraceAnnotations (log)
|
I see the problem. There's a missing |
Change https://go.dev/cl/560235 mentions this issue: |
Change https://go.dev/cl/559958 mentions this issue: |
… all P steals Currently there are a few places where a P can get stolen where the runtime doesn't traceAcquire and traceRelease across the steal itself. What can happen then is the following scenario: - Thread 1 enters a syscall and writes an event about it. - Thread 2 steals Thread 1's P. - Thread 1 exits the syscall and writes one or more events about it. - Tracing ends (trace.gen is set to 0). - Thread 2 checks to see if it should write an event for the P it just stole, sees that tracing is disabled, and doesn't. This results in broken traces, because there's a missing ProcSteal event. The parser always waits for a ProcSteal to advance a GoSyscallEndBlocked event, and in this case, it never comes. Fixes #65181. Change-Id: I437629499bb7669bf7fe2fc6fc4f64c53002916b Reviewed-on: https://go-review.googlesource.com/c/go/+/560235 Reviewed-by: Michael Pratt <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]> (cherry picked from commit c9d88ea) Reviewed-on: https://go-review.googlesource.com/c/go/+/559958 Auto-Submit: Michael Knyszek <[email protected]>
Currently there are a few places where a P can get stolen where the runtime doesn't traceAcquire and traceRelease across the steal itself. What can happen then is the following scenario: - Thread 1 enters a syscall and writes an event about it. - Thread 2 steals Thread 1's P. - Thread 1 exits the syscall and writes one or more events about it. - Tracing ends (trace.gen is set to 0). - Thread 2 checks to see if it should write an event for the P it just stole, sees that tracing is disabled, and doesn't. This results in broken traces, because there's a missing ProcSteal event. The parser always waits for a ProcSteal to advance a GoSyscallEndBlocked event, and in this case, it never comes. Fixes golang#65181. Change-Id: I437629499bb7669bf7fe2fc6fc4f64c53002916b Reviewed-on: https://go-review.googlesource.com/c/go/+/560235 Reviewed-by: Michael Pratt <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]>
Issue created automatically to collect these failures.
Example (log):
— watchflakes
The text was updated successfully, but these errors were encountered: