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: test failures with bad file number
on solaris-amd64-oraclerel
#58782
Comments
Found new dashboard test flakes for:
2023-02-27 20:01 solaris-amd64-oraclerel tools@b0fcf2a0 go@1362737f x/tools/gopls/internal/lsp/cmd/test.TestDefinition (log)
|
CC @adonovan |
I think we need to make a decision about on which OS we are going to support the new filecache logic. I'd rather we use an in-memory fallback than completely stop supporting several OS that have unreliable FS behavior. |
I argue for supporting POSIX (aix darwin linux {free,open,net}bsd illumos solaris) and Windows, but not Plan9. That means we disable any test that flakes on those OSs. What about Android and iOS? Does even a single person use gopls on those platforms?
I think we can rely on POSIX and Windows for the operations gopls needs. netbsd has been a little flaky on the builders recently, but I can't tell yet whether that's a problem with the kernel or just our builder. Let's keep an eye out for it. Ditto solaris. I'd really rather not make a memory-based fallback. |
I wonder if it makes more sense to disable gopls testing completely from the platforms we don't think gopls would work well, and make it clear what platforms are supported in the user documentation. (So, no false promise). My complaint about the platform-based skipped tests is it's hard to know from the builder state whether the functionality is actually working or not. If there are users who want to use gopls from such excluded platforms, we need to ask to open issues (or proposal) with support plan/active contribution. |
Yes, that sounds like the right way to do it. I couldn't tell from a glance at at https://cs.opensource.google/go/x/build/+/master:cmd/coordinator/buildstatus.go;l=813?q=gopls&ss=go%2Fx%2Fbuild how the set of (os, arch, package) test combinations is computed. Perhaps someone who knows this code better could point me in the right direction. |
CC @golang/release I'm afraid you may need to update Perhaps someone on the release team knows a better way. |
FWIW, this particular test failure is on The The Solaris documentation for
Since |
Found new dashboard test flakes for:
2023-03-06 20:14 solaris-amd64-oraclerel tools@b72edd12 go@4a305be9 x/tools/gopls/internal/lsp/cmd/test.TestReferences (log)
2023-03-13 18:43 solaris-amd64-oraclerel tools@243a9484 go@b852f395 x/tools/gopls/internal/lsp/cmd/test.TestReferences (log)
|
I agree with @bcmills that the log proves this chain of calls:
It's not possible that f's finalizer is run during the the call into libc, as the setlkw call is followed by But it's possible the syscall.Flock_t is getting garbage collected since the only reference to it is a uintptr passed to the syscall. |
If I understand the discussion on #34684 correctly, the fact that |
Found new dashboard test flakes for:
2023-03-14 19:39 solaris-amd64-oraclerel tools@537c4aa6 go@fbf4c04f x/tools/gopls/internal/lsp/cmd/test.TestReferences (log)
|
bad file number
on solaris-amd64-oraclerel
If this were due to a bug in our use of (attn @golang/solaris) |
On the other hand, it seems odd that we see this failure mode when testing (Maybe the bug in the filesystem has to do with deleting a file concurrently with locking it? We almost never delete files in the Go module cache during tests.) |
Found new dashboard test flakes for:
2023-03-16 15:43 solaris-amd64-oraclerel tools@6e5f4255 go@006b35c0 x/tools/gopls/internal/lsp/cmd/test.TestReferences (log)
|
Found new dashboard test flakes for:
2023-03-16 15:43 solaris-amd64-oraclerel tools@6e5f4255 go@fa42da15 x/tools/gopls/internal/lsp/cmd/test.TestReferences (log)
|
Issue created automatically to collect these failures.
Example (log):
— watchflakes
The text was updated successfully, but these errors were encountered: