-
Notifications
You must be signed in to change notification settings - Fork 18k
x/tools/internal/fastwalk: "checkptr: unsafe pointer conversion" during darwin race test #37269
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
Comments
FYI @heschik |
@mdempsky @randall77 I could use some help with this one. There are two possible cases here: Lines 9 to 21 in 56d6b87
(It would be lovely if they had different error messages. Should I send a CL?) I think the first case is trivially ruled out by the stack trace -- 0xc0002c1c08 is maximally aligned, right? So my best guess is that the Darwin Getdirentries implementation has returned a bad slice. Am I missing something? |
Ran a quick test with the error messages renamed and it is indeed the second case fwiw. |
From the stack trace, it looks like the problem is this conversion at https://github.com/golang/tools/blob/b320d3a0f5a29dea7f95f1ca5c4cbef0ac24a304/internal/fastwalk/fastwalk_unix.go#L80:
On Darwin, syscall.Dirent's size is >1000 bytes (https://golang.org/pkg/syscall/?GOOS=darwin#Dirent), but I'm guessing Easiest fix would be to change it to:
|
I'm seeing the same issue on the just-released go 1.14. |
Change https://golang.org/cl/221381 mentions this issue: |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
It doesn't reproduce on tip (88e564e) oddly enough.
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
I ran the govim test suite using
-race
under go 1.14rc1. It involves a lot of interaction with gopls. During the tests gopls stack dumps.Repro (requires vim 8.2 installed):
What did you expect to see?
Test pass
What did you see instead?
The text was updated successfully, but these errors were encountered: