-
Notifications
You must be signed in to change notification settings - Fork 17.7k
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
runtime: waitforsingleobject wait_failed #65255
Comments
In triage: something really went wrong here. It looks like this is a failure in asynchronous preemption, but I think we've also never seen a failure like this before. The fact that it's reproducible is super interesting as well. I guess we should try to reproduce this on a gomote too. CC @golang/windows, has anyone there seen something like this before? |
According to https://learn.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-, Windows error number 6 is And it looks like the That failure mode suggests a close connection to #43720. |
I can reproduce it locally. Don't know how is that the runtime fails so catastrophically, but it has something to do with a bug I just found in The second call to Replacing the |
excellent! Thank you for that.
…On Mon, Jan 29, 2024 at 9:36 AM Quim Muntal ***@***.***> wrote:
I can reproduce it locally. Don't know how is that the runtime fails so
catastrophically, but it has something to do with a bug I just found in
x/telemetry: a mapped file can be unmapped twice, one here
<https://github.com/golang/telemetry/blob/262b4901faf4875a13bf0b9ef1b08af9ea54187c/internal/counter/file.go#L280-L284>
and the other here
<https://github.com/golang/telemetry/blob/262b4901faf4875a13bf0b9ef1b08af9ea54187c/internal/counter/file.go#L500-L511>,
called from a finalizer set in here
<https://github.com/golang/telemetry/blob/262b4901faf4875a13bf0b9ef1b08af9ea54187c/internal/counter/file.go#L409>
.
The second call to munmap could be corrupting some memory which produces
the runtime failure. The fact that the runtime crash happens after ~70 test
runs also indicates that it has something to do with the GC and a finalizer
doing something wrong.
Replacing the munmap call inside rotate1 for previous.close() fixes the
issue, as mappedFile.close ensures that munmap is only ever called once.
—
Reply to this email directly, view it on GitHub
<#65255 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABJIAI57NDOGNXHUXNIQPALYQ6XWFAVCNFSM6AAAAABCI2BVYWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJUHAZDCOBYGA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Change https://go.dev/cl/559498 mentions this issue: |
Go version
go1.21.6
Output of
go env
in your module/workspace:What did you do?
I downloaded golang.org/x/telemetry and ran
go test ./internal/counter/... -run Rotate -count 70
What did you see happen?
etc....
What did you expect to see?
I expected either the test to pass or flaky test failures.
This failure is reproducible for me on my Windows virtual machine.
The text was updated successfully, but these errors were encountered: