-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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
x/tools/gopls: crashes due to apparent data race (gopls v16+ on linux) #71425
Comments
Related Issues (Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.) |
Fun fact: with one exception, all of the attached "can't happen" telemetry issues are from gopls/v0.17 on linux/amd64, even though linux accounts for only 22% of gopls users. I'm going to tentatively call this a linux-specific bug introduced after gopls 15. (Recall that 16 had broken telemetry.) This is the current set of all reports:
It's conceivable that all come from a single VS Code user with faulty hardware, though unlikely since there are 3 distinct gopls/Go version combinations here. (Maybe they were frantically upgrading after crashes?) The exception is #71067, from gopls/v0.15 on darwin/arm64, and which could be explained by a bug in IExportShallow. I will split it out. |
@findleyr Perhaps you could run gopls built with -race for a while? I've been doing it on my mac, but no problems so far. |
The latest associated issue (#72931) is something new:
|
While we've found and fixed many gopls crashes thanks to telemetry, as we gain more users it appears we're accumulating a long tail of issues that "can't happen" based on easily verifiable local invariants.
In some cases, these were related to misreporting of stacks by the runtime (#70637), but others cannot be explained by a misreported stack, and indicate some form of memory corruption or (most likely) data race.
This issue is an umbrella for those bugs. @adonovan and I will consolidate them here.
The text was updated successfully, but these errors were encountered: