-
Notifications
You must be signed in to change notification settings - Fork 17.8k
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: post-mortem analysis of Go 1.13 runtime/mgcsweep.go fatal error ("error: non in-use span in unswept list") #58681
Comments
this like 28003 ? |
@sten4eg Thanks for your reply. These two issues look similar, but they are not the same. In this issue, the sweepgen status is span.sweepgen = heap.sweepgen - 1, while the bug you mentioned is not. Its solution is to modify the judgment condition and let span.sweepgen = heap.sweepgen + 3 be considered a normal phenomenon. However, in the bug I reported, the sweepgen is still abnormal.
|
@sten4eg thank you for your response. i m the friend of suoxc. we met the problem described above runtime: bad span s.state=3 s.sweepgen=1115595 sweepgen=1115596 but 28003 is: by the way: |
Hi @SuoXC , per Go's release policy we provide active support for the current release and two previous releases-- you're working with Go 1.13, which is several years outside of the support window. Have you tried using a more recent Go release, to see if that solves your problem? Thanks.. |
We understand that, according to the current maintenance policy of Go, it is not possible to provide support for older versions. Therefore, we attempted to compile a version of Docker using a higher version of Go to see if it could solve the problem. However, since this bug is a rare occurrence, we have not been able to reproduce it again until now. The purpose of raising this issue here is primarily to confirm whether the community has any experience in dealing with similar bugs. We will continue to try to trace and find the root cause of this issue and see if it has been resolved in the newer versions. If not, we can also contribute to the Golang community by sharing our findings. |
OK, SGTM, thanks. I will label the issue "Documentation" to make it clear that this is about understanding "what went wrong with Go 1.13" as opposed to bringing up an issue/problem with the current version of Go. |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
No
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
We have a machine running Docker containers in production, and Docker Engine reported an error that the main process had exited without any operation being performed. The error message is as follows:
From the error message, it seems that it may be related to the memory cleanup operation of the runtime. We looked at the relevant code as follows:
After the error occurred, the entire dockerd service crashed and dumped the core. We made some guesses based on the error log, but we have not yet come to a conclusion.
To summarize the reproduction conditions:
We have some guesses about this:
However, all of these guesses were ruled out later when we reviewed the code, and because we are unable to reproduce this bug, we have made no progress so far. We would be very grateful if anyone could help us with the analysis. If more information is needed, we can provide it at any time.
What did you expect to see?
No GC panic error in dockerd.
What did you see instead?
A GC panic error in dockerd, as described above. If possible, please help us analyze this issue. The Go version used is quite old. If this issue has been resolved in a higher version, we would like to know how it was resolved and whether any relevant code or patches can be provided.
full-stack.log
The text was updated successfully, but these errors were encountered: