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: mTreap corruption in go1.13.10 #40372
Comments
This stack trace is from an OS X machine, to the best of my knowledge istio is only deployed on linux. Are you sure this stack trace is from the affected machine. |
Sorry, I didn't describe it clearly. We used cross compiling. The runtime environment is Linux x86_64. Description already updated, and please take a look again. |
Thank you. Have you raised this issue with the istio developers? |
Not yet. I’ll do later. |
It seems that the treap structure of |
In cases like this the most appropriate line of investigation is to ensure the program is completely free of data races. As the OP is running software written by a third party, I think it is appropriate that they seek assertions from the istio developers that they are confident that no data races exist in the version in question. |
It may be worth mentioning that in Go 1.14 and later It's not totally clear to me how a data race at the application level could lead to corruption of It's also possible (but I don't know how) that |
@tokers can you provide more detail? Were you able to look at a core dump? And thanks @luckyxiaoqiang for the report. |
Thanks for your reply @mknyszek . |
Yet another weird thing is that this scenario happened for several times but all in one machine (Linux VM). I don't know whether there are some environment-dependent factors that will influence the runtime memory allocator. |
Thanks @davecheney . We do lots of internal development based on the official Istio with an old version which no longer maintained by community, so maybe it's hard to get help from Istio developers. We'll try to find data races at application level by ourselves. |
Go 1.13 is no longer supported and the aforementioned code ceased to exist in Go 1.14. Closing this issue as essentially complete. |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
It's very hard to reproduce. We have not yet reproduced it with the latest release.
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
We deployed Istio Pilot on our product environment (Virtual Machine). It ran for about a month or two after we used go1.13.10 util we met this problem. There is no special operation, no large load. And only one instance had this problem.
What did you expect to see?
The process responded normally.
What did you see instead?
The process was unresponsive.
The initial phenomenon was that all client requests timed out. We got high CPU usage alert after a few minute, and we found one CPU core utilization rate was close to 100 on the abnormal node.
We used dlv to find there was one goroutine that was looping in a
for loop
.Below is the stack.
Below is the corresponding code(the first for loop).
The text was updated successfully, but these errors were encountered: