-
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
all: test failures with bad file number
or exec format error
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)
|
Found new dashboard test flakes for:
2023-04-13 19:23 solaris-amd64-oraclerel tools@1b2d1bd5 go@abb86e6e x/tools/gopls/internal/lsp/cmd/test.TestReferences (log)
|
I don't think the gopls tests are concurrently deleting and reading either. Deletion is only done by the filecache GC, and it deletes first based on age (= garbage produced by older executables) then, after a delay, based on space. In any case it's always the oldest files that are deleted. Space-based deletion may be more common after last week's change to the parameters, but I expect concurrent read/write and delete of the same file (or even directory) was extremely rare in our tests. |
Found new dashboard test flakes for:
2023-04-18 17:47 solaris-amd64-oraclerel tools@85d651af go@59c2d787 x/tools/gopls/internal/lsp/cmd/test.TestCheck (log)
|
Found new dashboard test flakes for:
2023-04-18 14:44 solaris-amd64-oraclerel tools@54c806f6 go@2c64b50d x/tools/gopls/internal/lsp/cmd/test.TestSignature (log)
|
Found new dashboard test flakes for:
2023-04-18 19:06 solaris-amd64-oraclerel tools@641e4d7e go@54d42999 x/tools/gopls/internal/lsp/cmd/test.TestDefinition (log)
2023-04-18 19:06 solaris-amd64-oraclerel tools@641e4d7e go@130a7f8e x/tools/gopls/internal/lsp/cmd/test.TestReferences (log)
2023-04-20 19:53 solaris-amd64-oraclerel tools@b35949e2 go@ecf7e00d x/tools/gopls/internal/lsp/cmd/test.TestCheck (log)
2023-04-20 19:53 solaris-amd64-oraclerel tools@b35949e2 go@ecf7e00d x/tools/gopls/internal/lsp/cmd/test.TestDefinition (log)
2023-04-20 20:04 solaris-amd64-oraclerel tools@9c9e11f3 go@130a7f8e x/tools/gopls/internal/lsp/cmd/test.TestDefinition (log)
2023-04-21 14:54 solaris-amd64-oraclerel tools@21a4769d go@ed832ed3 x/tools/gopls/internal/lsp/cmd/test.TestCheck (log)
|
Found new dashboard test flakes for:
2023-04-27 22:13 solaris-amd64-oraclerel tools@165099bd go@25b4f406 x/tools/gopls/internal/lsp/cmd/test.TestCheck (log)
|
Found new dashboard test flakes for:
2023-05-01 14:34 solaris-amd64-oraclerel tools@c6b5780e go@069f9fb2 x/tools/gopls/internal/lsp/cmd/test.TestSignature (log)
|
bad file number
on solaris-amd64-oraclerelbad file number
or exec format error
on solaris-amd64-oraclerel
I am including |
(CC @golang/illumos, although to my knowledge we have not seen this failure mode on the |
Found new dashboard test flakes for:
2023-04-25 19:18 solaris-amd64-oraclerel tools@dd89a2eb go@25b4f406 x/tools/gopls/internal/regtest/misc (log)
|
Found new dashboard test flakes for:
2023-05-05 13:51 solaris-amd64-oraclerel tools@4ac71c00 go@324c3ace x/tools/gopls/internal/lsp/cmd/test.TestDefinition (log)
|
Found new dashboard test flakes for:
2023-05-05 18:39 solaris-amd64-oraclerel tools@7c6c2b7f go@a5350558 x/tools/gopls/internal/lsp/cmd/test.TestDefinition (log)
|
bad file number
or exec format error
on solaris-amd64-oraclerelbad file number
or exec format error
on solaris-amd64-oraclerel
Found new dashboard test flakes for:
2023-05-03 21:27 solaris-amd64-oraclerel go@129b597d cmd/go.TestScript (log)
|
Found new dashboard test flakes for:
2023-05-08 16:39 solaris-amd64-oraclerel tools@f4d143eb go@dd78bc05 x/tools/gopls/internal/lsp/cmd/test.TestDefinition (log)
|
Found new dashboard test flakes for:
2023-05-09 21:13 solaris-amd64-oraclerel tools@23108489 go@324c3ace x/tools/gopls/internal/lsp/cmd/test.TestReferences (log)
|
Found new dashboard test flakes for:
2023-05-09 17:51 solaris-amd64-oraclerel tools@90e9c659 go@841e99e2 x/tools/gopls/internal/lsp/cmd/test.TestSignature (log)
|
Since this has proven to be reproducible outside of gopls, I'll remove this from the gopls@v0.12.0 milestone. |
Issue created automatically to collect these failures.
Example (log):
— watchflakes
The text was updated successfully, but these errors were encountered: