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: unable to acquire - semaphore out of sync #16646
Comments
Are you positive thing codebase contains no data races? On Tue, 9 Aug 2016, 22:27 Péter Szilágyi notifications@github.com wrote:
|
We are reasonably confident that the codebase doesn't contain data races. But of course there is no way to prove it to you ;) |
@fjl I did merge in one of your PRs a few hours ago, so it's worth a double check, though it's a very strange error that I haven't seen before. |
Thank you for confirming. Go 1.7 will be released next week, so any fix to On Tue, 9 Aug 2016, 22:56 Felix Lange notifications@github.com wrote:
|
You should have gotten a stack backtrace with the error. Can you attach it here? |
Oh, sorry, I see you provided a link to the stack trace above. |
I don't know what the bug is, but here is what is going on. Your program is entering the stop-the-world phase of a garbage collection. The goroutine that started that is telling all the other goroutines to stop. It is sleeping on a A call to |
It looks like a few things could be cleaned up here. The return value isn't checked from CreateEvent which could be returning a null event if it failed to create an event. WaitForSingleObject in semasleep is assuming any non-zero return values is a timeout, there's some nuance here. Timeout is a 0x0102, other errors may be returned. |
CL https://golang.org/cl/26655 mentions this issue. |
It has happened again, in the same unit test: https://ci.appveyor.com/project/tgerring/go-ethereum/build/develop.308#L236 |
Are you able to test with a custom build from the CL above? It should give you better insight into the failure. |
Not really. I'll try to get go built with the Cl onto AppVeyor this week. I haven't been able to reproduce the failure locally, the test passes 300+ iterations in my Windows VM. |
Add checks for failure of CreateEvent, SetEvent or WaitForSingleObject. Any failures are considered fatal and will throw() after printing an informative message. Updates #16646 Change-Id: I3bacf9001d2abfa8667cc3aff163ff2de1c99915 Reviewed-on: https://go-review.googlesource.com/26655 Reviewed-by: Russ Cox <rsc@golang.org> Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Hi @fjl. CL 26655 was released as part of Go 1.8. Have you had any failures of this sort on 1.8? |
No, it hasn't happened again. You can close. |
Thanks! |
Today one of our CI tests failed on AppVeyor, Windows, Go 1.6.2 with the error message seen in the title. I don't have a reliable way to reproduce it, it's inside a huge project, but here's the complete stack dump if it helps, at least to provide some hints whether it's our code or Go. (I assume the fault is on our end but I haven't ever seen this message so can't trace is properly).
The text was updated successfully, but these errors were encountered: