Skip to content
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/internal/lsp/filecache: TestConcurrency failures #58748

Closed
gopherbot opened this issue Feb 27, 2023 · 12 comments
Closed

x/tools/gopls/internal/lsp/filecache: TestConcurrency failures #58748

gopherbot opened this issue Feb 27, 2023 · 12 comments
Assignees
Labels
FrozenDueToAge gopls/incremental gopls Issues related to the Go language server, gopls. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Tools This label describes issues relating to any tools in the x/tools repository.
Milestone

Comments

@gopherbot
Copy link
Contributor

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/filecache" && test == "TestConcurrency"

Issue created automatically to collect these failures.

Example (log):

SIGQUIT: quit
PC=0x90e38 m=0 sigcode=0

r0   0x0	r1   0xee
r2   0x29e588	r3   0x80
r4   0x0	r5   0x0
r6   0x0	r7   0x0
r8   0x1	r9   0x29e858
r10  0x0	r11  0x0
r12  0x0	r13  0x29dda0
r14  0x4cac2	r15  0x3ffd157f278
pc   0x90e38	link 0x4cac2
*** Test killed with quit: ran too long (11m0s).

runtime.gopark(0x1a55c8, 0x2a1420, 0x12, 0x19, 0x4)
	/data/golang/workdir/go/src/runtime/proc.go:381 +0x136 fp=0xc000073e20 sp=0xc000073e08 pc=0x54e36
runtime.goparkunlock(...)
	/data/golang/workdir/go/src/runtime/proc.go:387
runtime.semacquire1(0xc0000236d0, 0x0, 0x1, 0x0, 0x12)
	/data/golang/workdir/go/src/runtime/sema.go:160 +0x248 fp=0xc000073e78 sp=0xc000073e20 pc=0x6a2c8
sync.runtime_Semacquire(0xc0000236d0)
	/data/golang/workdir/go/src/runtime/sema.go:62 +0x44 fp=0xc000073ea8 sp=0xc000073e78 pc=0x8ca84
sync.(*WaitGroup).Wait(0xc0000236c8)
	/data/golang/workdir/go/src/sync/waitgroup.go:116 +0x6a fp=0xc000073ec0 sp=0xc000073ea8 pc=0x9804a
golang.org/x/sync/errgroup.(*Group).Wait(0xc0000236c0)
	/data/golang/workdir/gopath/pkg/mod/golang.org/x/sync@v0.1.0/errgroup/errgroup.go:53 +0x3c fp=0xc000073ed0 sp=0xc000073ec0 pc=0x15767c
golang.org/x/tools/gopls/internal/lsp/filecache_test.TestConcurrency(0xc00017e000)
	/data/golang/workdir/gopath/src/golang.org/x/tools/gopls/internal/lsp/filecache/filecache_test.go:98 +0x2de fp=0xc000073f60 sp=0xc000073ed0 pc=0x15831e
testing.tRunner(0xc00017e000, 0x1a5140)

watchflakes

@gopherbot gopherbot added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Feb 27, 2023
@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/filecache" && test == "TestConcurrency"
2023-02-25 00:08 linux-s390x-ibm tools@f98fce20 go@af6bb3f9 x/tools/gopls/internal/lsp/filecache.TestConcurrency (log)
SIGQUIT: quit
PC=0x90e38 m=0 sigcode=0

r0   0x0	r1   0xee
r2   0x29e588	r3   0x80
r4   0x0	r5   0x0
r6   0x0	r7   0x0
r8   0x1	r9   0x29e858
r10  0x0	r11  0x0
r12  0x0	r13  0x29dda0
r14  0x4cac2	r15  0x3ffd157f278
pc   0x90e38	link 0x4cac2
*** Test killed with quit: ran too long (11m0s).

runtime.gopark(0x1a55c8, 0x2a1420, 0x12, 0x19, 0x4)
	/data/golang/workdir/go/src/runtime/proc.go:381 +0x136 fp=0xc000073e20 sp=0xc000073e08 pc=0x54e36
runtime.goparkunlock(...)
	/data/golang/workdir/go/src/runtime/proc.go:387
runtime.semacquire1(0xc0000236d0, 0x0, 0x1, 0x0, 0x12)
	/data/golang/workdir/go/src/runtime/sema.go:160 +0x248 fp=0xc000073e78 sp=0xc000073e20 pc=0x6a2c8
sync.runtime_Semacquire(0xc0000236d0)
	/data/golang/workdir/go/src/runtime/sema.go:62 +0x44 fp=0xc000073ea8 sp=0xc000073e78 pc=0x8ca84
sync.(*WaitGroup).Wait(0xc0000236c8)
	/data/golang/workdir/go/src/sync/waitgroup.go:116 +0x6a fp=0xc000073ec0 sp=0xc000073ea8 pc=0x9804a
golang.org/x/sync/errgroup.(*Group).Wait(0xc0000236c0)
	/data/golang/workdir/gopath/pkg/mod/golang.org/x/sync@v0.1.0/errgroup/errgroup.go:53 +0x3c fp=0xc000073ed0 sp=0xc000073ec0 pc=0x15767c
golang.org/x/tools/gopls/internal/lsp/filecache_test.TestConcurrency(0xc00017e000)
	/data/golang/workdir/gopath/src/golang.org/x/tools/gopls/internal/lsp/filecache/filecache_test.go:98 +0x2de fp=0xc000073f60 sp=0xc000073ed0 pc=0x15831e
testing.tRunner(0xc00017e000, 0x1a5140)

watchflakes

@gopherbot gopherbot added Tools This label describes issues relating to any tools in the x/tools repository. gopls Issues related to the Go language server, gopls. labels Feb 27, 2023
@gopherbot gopherbot added this to the Unreleased milestone Feb 27, 2023
@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/filecache" && test == "TestConcurrency"
2023-01-20 02:42 plan9-arm tools@a7f033af go@c641d48a x/tools/gopls/internal/lsp/filecache.TestConcurrency (log)
--- FAIL: TestConcurrency (2.30s)
    filecache_test.go:99: open /tmp/gopls/eb948799/TestConcurrency/e0/e05ac03a87bbe7ab6768fe0fb083c0bbd4d325061645abf87964477a4bd35143: '/tmp/gopls' mount rpc error
2023-02-15 22:44 netbsd-arm64-bsiegert tools@268cb0b8 go@55044288 x/tools/gopls/internal/lsp/filecache.TestConcurrency (log)
runtime: g 72: unexpected return pc for golang.org/x/tools/gopls/internal/lsp/filecache_test.TestConcurrency.func1 called from 0x1cf5efc245106721
stack: frame={sp:0x40007d7f40, fp:0x40008a1fc0} stack=[0x40007a2000,0x40008a2000)
0x00000040007d7e40:  0x6b32dbfd30418f7f  0x9441c448b25c8404 
0x00000040007d7e50:  0xcf217b8028685152  0xc874e4d9a370b127 
0x00000040007d7e60:  0x6b32dbfd30418f7f  0xffffffffffffffff 
0x00000040007d7e70:  0xffffffffffffffff  0xffffffffffffffff 
0x00000040007d7e80:  0xffffffffffffffff  0x0000000000000000 
0x00000040007d7e90:  0x0000000000000000  0x0000000000000000 
0x00000040007d7ea0:  0x0000000000000000  0x0000000000000000 
0x00000040007d7eb0:  0x0000000000000000  0x0000000000000000 
...
fatal error: unknown caller pc

runtime stack:
runtime.throw({0x15a580?, 0x246520?})
	/var/gobuilder/buildlet/go/src/runtime/panic.go:1075 +0x40 fp=0x4003e21840 sp=0x4003e21810 pc=0x43a40
runtime.gentraceback(0x4002aeb000?, 0x10?, 0x1?, 0x4000156b60, 0x0, 0x0, 0x7fffffff, 0x4003e21da0, 0x4003e21c38?, 0x0)
	/var/gobuilder/buildlet/go/src/runtime/traceback.go:270 +0x14d8 fp=0x4003e21bb0 sp=0x4003e21840 pc=0x6a228
runtime.scanstack(0x4000156b60, 0x400002c138)
	/var/gobuilder/buildlet/go/src/runtime/mgcmark.go:804 +0x1a8 fp=0x4003e21dc0 sp=0x4003e21bb0 pc=0x2c868
runtime.markroot.func1()
...
	/var/gobuilder/buildlet/go/src/runtime/sema.go:160 +0x20c fp=0x4000065e40 sp=0x4000065de0 pc=0x57c9c
sync.runtime_Semacquire(0x4000065eb8?)
	/var/gobuilder/buildlet/go/src/runtime/sema.go:62 +0x2c fp=0x4000065e80 sp=0x4000065e40 pc=0x7273c
sync.(*WaitGroup).Wait(0x400006c8c8)
	/var/gobuilder/buildlet/go/src/sync/waitgroup.go:116 +0x74 fp=0x4000065ea0 sp=0x4000065e80 pc=0x7d364
golang.org/x/sync/errgroup.(*Group).Wait(0x400006c8c0)
	/var/gobuilder/buildlet/gopath/pkg/mod/golang.org/x/sync@v0.1.0/errgroup/errgroup.go:53 +0x2c fp=0x4000065ec0 sp=0x4000065ea0 pc=0x10f9bc
golang.org/x/tools/gopls/internal/lsp/filecache_test.TestConcurrency(0x4000134000)
	/var/gobuilder/buildlet/gopath/src/golang.org/x/tools/gopls/internal/lsp/filecache/filecache_test.go:98 +0x1ec fp=0x4000065f60 sp=0x4000065ec0 pc=0x11028c
testing.tRunner(0x4000134000, 0x163990)

watchflakes

@findleyr
Copy link
Contributor

findleyr commented Mar 1, 2023

CC @adonovan: how much time to we want to spend investigating these filecache errors on niche builders? Can we restrict to linux/darwin/windows?

@findleyr findleyr modified the milestones: Unreleased, gopls/v0.12.0 Mar 1, 2023
@adonovan
Copy link
Member

adonovan commented Mar 1, 2023

I agree that we shouldn't spend time on plan9 (since we don't support it) or netbsd (since it looks like there's a runtime bug there, and the underlying issue looks the same as the linux-s390x one). But the 10m timeout on linux-s390x is concerning.

@findleyr
Copy link
Contributor

findleyr commented Mar 1, 2023

@adonovan the s390x builder had known issues earlier this week.

I'll close this as transient. If need be, we can skip the test on plan9.

@findleyr findleyr closed this as not planned Won't fix, can't repro, duplicate, stale Mar 1, 2023
@gopherbot gopherbot reopened this Mar 13, 2023
@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/filecache" && test == "TestConcurrency"
2023-03-13 18:43 plan9-arm tools@243a9484 go@90dde5de x/tools/gopls/internal/lsp/filecache.TestConcurrency (log)
--- FAIL: TestConcurrency (1.81s)
    filecache_test.go:99: open /tmp/gopls/85cea58e/TestConcurrency/05/05244f281c403b20b5830ea2568cc08f54ea115b11fa2c77f5da2f9ff1ea5b80: '.../05/05244f281c403b20b5830ea2568cc08f54ea115b11fa2c77f5da2f9ff1ea5b80' mount rpc error

watchflakes

@findleyr
Copy link
Contributor

findleyr commented Apr 6, 2023

Let's skip the test on plan9.

@adonovan
Copy link
Member

adonovan commented Apr 6, 2023

Have we decided whether to to skip all gopls tests on plan9?

@gopherbot
Copy link
Contributor Author

Found new dashboard test flakes for:

#!watchflakes
post <- pkg == "golang.org/x/tools/gopls/internal/lsp/filecache" && test == "TestConcurrency"
2023-04-10 22:26 netbsd-arm64-bsiegert tools@d03c59db go@eb57c090 x/tools/gopls/internal/lsp/filecache.TestConcurrency (log)
SIGSEGV: segmentation violation
PC=0x69320 m=62 sigcode=1

runtime.gopark(0x267bc0?, 0x1b37c?, 0x60?, 0xa3?, 0x18?)
	/var/gobuilder/buildlet/go/src/runtime/proc.go:392 +0xc8 fp=0x400009bde0 sp=0x400009bdc0 pc=0x460d8
runtime.goparkunlock(...)
	/var/gobuilder/buildlet/go/src/runtime/proc.go:398
runtime.semacquire1(0x40000ac910, 0x18?, 0x1, 0x0, 0x90?)
	/var/gobuilder/buildlet/go/src/runtime/sema.go:160 +0x20c fp=0x400009be40 sp=0x400009bde0 pc=0x578bc
sync.runtime_Semacquire(0x400009beb8?)
	/var/gobuilder/buildlet/go/src/runtime/sema.go:62 +0x2c fp=0x400009be80 sp=0x400009be40 pc=0x7280c
sync.(*WaitGroup).Wait(0x40000ac908)
	/var/gobuilder/buildlet/go/src/sync/waitgroup.go:116 +0x74 fp=0x400009bea0 sp=0x400009be80 pc=0x7d464
golang.org/x/sync/errgroup.(*Group).Wait(0x40000ac900)
	/var/gobuilder/buildlet/gopath/pkg/mod/golang.org/x/sync@v0.1.0/errgroup/errgroup.go:53 +0x2c fp=0x400009bec0 sp=0x400009bea0 pc=0x11023c
golang.org/x/tools/gopls/internal/lsp/filecache_test.TestConcurrency(0x4000083040)
	/var/gobuilder/buildlet/gopath/src/golang.org/x/tools/gopls/internal/lsp/filecache/filecache_test.go:98 +0x1f8 fp=0x400009bf60 sp=0x400009bec0 pc=0x110b08
testing.tRunner(0x4000083040, 0x164810)

watchflakes

@adonovan
Copy link
Member

The latest report looks like a runtime bug; I've reported it at #59573.

@findleyr findleyr self-assigned this May 3, 2023
@gopherbot
Copy link
Contributor Author

Change https://go.dev/cl/492495 mentions this issue: gopls/internal/lsp/filecache: skip TestConcurrency on plan9 builder

@findleyr
Copy link
Contributor

findleyr commented May 3, 2023

I don't know if we'll skip everything on plan9, but let's skip this test and move on. Mailed the CL above to close this issue.

@golang golang locked and limited conversation to collaborators May 3, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge gopls/incremental gopls Issues related to the Go language server, gopls. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. Tools This label describes issues relating to any tools in the x/tools repository.
Projects
Archived in project
Development

No branches or pull requests

3 participants