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: concurrent map write panic #32809

Closed
muirdm opened this issue Jun 27, 2019 · 1 comment
Closed

x/tools/gopls: concurrent map write panic #32809

muirdm opened this issue Jun 27, 2019 · 1 comment
Labels
Milestone

Comments

@muirdm
Copy link

@muirdm muirdm commented Jun 27, 2019

Just got this on master (4874f863e654449ac721e9d65f7467dbaba3da2e). I started Emacs using the old behavior of sending all open files to gopls at once and gopls got stuck running "go list"s indefinitely, then eventually hit this panic.

/cc @stamblerre

fatal error: concurrent map writes

goroutine 39166 [running]:
runtime.throw(0x16a9b76, 0x15)
	/usr/local/go/src/runtime/panic.go:617 +0x72 fp=0xc034d48a38 sp=0xc034d48a08 pc=0x102eec2
runtime.mapassign_faststr(0x15cc840, 0xc00943db00, 0xc005364a20, 0x22, 0xc000f12000)
	/usr/local/go/src/runtime/map_faststr.go:291 +0x40f fp=0xc034d48aa0 sp=0xc034d48a38 pc=0x1014b6f
golang.org/x/tools/internal/lsp/cache.(*importer).cachePackage(0xc02c274140, 0x1784da0, 0xc01eaa6040, 0xc0485de790, 0xc00739ca80, 0x1)
	/Users/muir/projects/tools/internal/lsp/cache/check.go:211 +0x1d0 fp=0xc034d48bc8 sp=0xc034d48aa0 pc=0x15246b0
golang.org/x/tools/internal/lsp/cache.(*importer).typeCheck(0xc02c274140, 0xc005364a20, 0x22, 0x22, 0xc007895818, 0x0)
	/Users/muir/projects/tools/internal/lsp/cache/check.go:190 +0xa08 fp=0xc034d48df0 sp=0xc034d48bc8 pc=0x1523c78
golang.org/x/tools/internal/lsp/cache.(*importer).getPkg(0xc02c274140, 0xc005364a20, 0x22, 0xd, 0xc007b226b8, 0xc034d48e01)
	/Users/muir/projects/tools/internal/lsp/cache/check.go:68 +0x480 fp=0xc034d48e58 sp=0xc034d48df0 pc=0x15231d0
golang.org/x/tools/internal/lsp/cache.(*importer).Import(0xc02c274140, 0xc012752801, 0xd, 0x0, 0x0, 0x1014000)
	/Users/muir/projects/tools/internal/lsp/cache/check.go:41 +0x88 fp=0xc034d48ec0 sp=0xc034d48e58 pc=0x1522bf8
go/types.(*Checker).importPackage(0xc00f4ed1d0, 0x2c36dd0, 0xc012752801, 0xd, 0xc0124d0dc7, 0x34, 0xc043d1cd20)
	/usr/local/go/src/go/types/resolver.go:161 +0x6ea fp=0xc034d49018 sp=0xc034d48ec0 pc=0x138706a
go/types.(*Checker).collectObjects(0xc00f4ed1d0)
	/usr/local/go/src/go/types/resolver.go:256 +0x15f9 fp=0xc034d495a0 sp=0xc034d49018 pc=0x13888a9
go/types.(*Checker).checkFiles(0xc00f4ed1d0, 0xc0136ca300, 0xe, 0x10, 0x0, 0x0)
	/usr/local/go/src/go/types/check.go:252 +0x97 fp=0xc034d495d0 sp=0xc034d495a0 pc=0x1367417
go/types.(*Checker).Files(...)
	/usr/local/go/src/go/types/check.go:245
golang.org/x/tools/internal/lsp/cache.(*importer).typeCheck(0xc02c293740, 0xc03a72ae70, 0x26, 0x26, 0xc00ed65718, 0x105af00)
	/Users/muir/projects/tools/internal/lsp/cache/check.go:187 +0x9c1 fp=0xc034d497f8 sp=0xc034d495d0 pc=0x1523c31
golang.org/x/tools/internal/lsp/cache.(*importer).getPkg(0xc02c293740, 0xc03a72ae70, 0x26, 0xc03e242d58, 0x2, 0x0)
	/Users/muir/projects/tools/internal/lsp/cache/check.go:68 +0x480 fp=0xc034d49860 sp=0xc034d497f8 pc=0x15231d0
golang.org/x/tools/internal/lsp/cache.(*view).loadParseTypecheck(0xc0002228f0, 0x1784da0, 0xc01eaa6040, 0xc0395df7c0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/Users/muir/projects/tools/internal/lsp/cache/load.go:60 +0x3da fp=0xc034d49a30 sp=0xc034d49860 pc=0x1527b7a
golang.org/x/tools/internal/lsp/cache.(*goFile).GetPackages(0xc0395df7c0, 0x1784da0, 0xc01eaa6040, 0x0, 0x0, 0x0)
	/Users/muir/projects/tools/internal/lsp/cache/gofile.go:97 +0x100 fp=0xc034d49b68 sp=0xc034d49a30 pc=0x1526630
golang.org/x/tools/internal/lsp/cache.(*goFile).GetPackage(0xc0395df7c0, 0x1784da0, 0xc01eaa6040, 0xc02e249d80, 0x2)
	/Users/muir/projects/tools/internal/lsp/cache/gofile.go:118 +0x4c fp=0xc034d49be8 sp=0xc034d49b68 pc=0x1526bec
golang.org/x/tools/internal/lsp/source.Diagnostics(0x1784da0, 0xc01eaa6040, 0x178e000, 0xc0002228f0, 0x178d300, 0xc04382d400, 0x0, 0x0, 0x0, 0x16cbf20)
	/Users/muir/projects/tools/internal/lsp/source/diagnostics.go:90 +0x31a fp=0xc034d49de8 sp=0xc034d49be8 pc=0x14c799a
golang.org/x/tools/internal/lsp.(*Server).Diagnostics(0xc0001c2900, 0x1784da0, 0xc01eaa6040, 0x178e000, 0xc0002228f0, 0xc028aac000, 0x67)
	/Users/muir/projects/tools/internal/lsp/diagnostics.go:27 +0x268 fp=0xc034d49f70 sp=0xc034d49de8 pc=0x1515078
golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose.func1(0x178e000, 0xc0002228f0, 0xc0001c2900, 0xc028aac000, 0x67)
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:61 +0x67 fp=0xc034d49fb8 sp=0xc034d49f70 pc=0x1520bd7
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc034d49fc0 sp=0xc034d49fb8 pc=0x105d841
created by golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:59 +0x141

goroutine 1 [syscall]:
syscall.syscall(0x10a70d0, 0x0, 0xc000212000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/go/src/runtime/sys_darwin.go:63 +0x2e
syscall.read(0x0, 0xc000212000, 0x1000, 0x1000, 0x0, 0x4, 0x9)
	/usr/local/go/src/syscall/zsyscall_darwin_amd64.go:1169 +0x67
syscall.Read(...)
	/usr/local/go/src/syscall/syscall_unix.go:172
internal/poll.(*FD).Read(0xc0000ba000, 0xc000212000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/fd_unix.go:165 +0x12f
os.(*File).read(...)
	/usr/local/go/src/os/file_unix.go:263
os.(*File).Read(0xc0000b8000, 0xc000212000, 0x1000, 0x1000, 0xc00020b6c0, 0x104954f, 0x10)
	/usr/local/go/src/os/file.go:108 +0x70
bufio.(*Reader).fill(0xc0001a0fc0)
	/usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).ReadSlice(0xc0001a0fc0, 0xc03bf0260a, 0x16c4ccc, 0x2, 0x3, 0xc03bf02680, 0x3)
	/usr/local/go/src/bufio/bufio.go:356 +0x3d
bufio.(*Reader).ReadBytes(0xc0001a0fc0, 0xa, 0xc00020b800, 0x100a45d, 0xc02b35cd70, 0x67ba449961aab59a, 0x8)
	/usr/local/go/src/bufio/bufio.go:434 +0x70
bufio.(*Reader).ReadString(...)
	/usr/local/go/src/bufio/bufio.go:474
golang.org/x/tools/internal/jsonrpc2.(*headerStream).Read(0xc0001aa740, 0x1784de0, 0xc00002c0c0, 0xc03ae69ec0, 0xc000214000, 0x1784e60, 0xc02f23def0, 0xc041f05590, 0xc0099b0010)
	/Users/muir/projects/tools/internal/jsonrpc2/stream.go:97 +0x99
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run(0xc000214000, 0x1784de0, 0xc00002c0c0, 0xc0001aa780, 0xc0001c2900)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:387 +0xa2
golang.org/x/tools/internal/lsp.(*Server).Run(...)
	/Users/muir/projects/tools/internal/lsp/server.go:61
golang.org/x/tools/internal/lsp/cmd.(*Serve).Run(0xc000200030, 0x1784de0, 0xc00002c0c0, 0xc0000201d0, 0x0, 0x0, 0x0, 0x0)
	/Users/muir/projects/tools/internal/lsp/cmd/serve.go:95 +0x541
golang.org/x/tools/internal/tool.Main.func2(0x0, 0x1787820, 0xc000200030, 0x1784de0, 0xc00002c0c0, 0xc0001f84e0, 0x0, 0x0)
	/Users/muir/projects/tools/internal/tool/tool.go:130 +0xb7
golang.org/x/tools/internal/tool.Main(0x1784de0, 0xc00002c0c0, 0x1787820, 0xc000200030, 0xc0000201d0, 0x0, 0x0)
	/Users/muir/projects/tools/internal/tool/tool.go:131 +0x243
golang.org/x/tools/internal/lsp/cmd.(*Application).Run(0xc000200000, 0x1784de0, 0xc00002c0c0, 0xc0000201d0, 0x0, 0x0, 0x0, 0x0)
	/Users/muir/projects/tools/internal/lsp/cmd/cmd.go:106 +0x4ac
golang.org/x/tools/internal/tool.Main.func2(0xc000200000, 0x17877e0, 0xc000200000, 0x1784de0, 0xc00002c0c0, 0xc0001f8480, 0x0, 0x0)
	/Users/muir/projects/tools/internal/tool/tool.go:130 +0xb7
golang.org/x/tools/internal/tool.Main(0x1784de0, 0xc00002c0c0, 0x17877e0, 0xc000200000, 0xc0000201c0, 0x2, 0x2)
	/Users/muir/projects/tools/internal/tool/tool.go:131 +0x243
main.main()
	/Users/muir/projects/tools/cmd/gopls/main.go:22 +0x11a

goroutine 52 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x2a91f38, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000127018, 0x72, 0x0, 0x0, 0x168851d)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc000127000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/fd_unix.go:384 +0x1ba
net.(*netFD).accept(0xc000127000, 0xd0135da8, 0x19d45d0135da8, 0x100000001)
	/usr/local/go/src/net/fd_unix.go:238 +0x42
net.(*TCPListener).accept(0xc0000102e0, 0x5d14e270, 0xc000065e78, 0x10b31f6)
	/usr/local/go/src/net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc0000102e0, 0xc000065ec8, 0x18, 0xc000001800, 0x12e74d4)
	/usr/local/go/src/net/tcpsock.go:260 +0x48
net/http.(*Server).Serve(0xc0000b3e10, 0x1783ca0, 0xc0000102e0, 0x0, 0x0)
	/usr/local/go/src/net/http/server.go:2859 +0x22d
net/http.Serve(...)
	/usr/local/go/src/net/http/server.go:2456
golang.org/x/tools/internal/lsp/debug.Serve.func1(0x1783ca0, 0xc0000102e0)
	/Users/muir/projects/tools/internal/lsp/debug/serve.go:232 +0x4c6
created by golang.org/x/tools/internal/lsp/debug.Serve
	/Users/muir/projects/tools/internal/lsp/debug/serve.go:216 +0x1b6

goroutine 37727 [semacquire]:
sync.runtime_SemacquireMutex(0xc0001c296c, 0x100b900)
	/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc0001c2968)
	/usr/local/go/src/sync/mutex.go:134 +0x109
golang.org/x/tools/internal/lsp.(*Server).Diagnostics(0xc0001c2900, 0x1784da0, 0xc00f7d10c0, 0x178e000, 0xc0002228f0, 0xc042d3c8c0, 0x4c)
	/Users/muir/projects/tools/internal/lsp/diagnostics.go:33 +0x2a5
golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose.func1(0x178e000, 0xc0002228f0, 0xc0001c2900, 0xc042d3c8c0, 0x4c)
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:61 +0x67
created by golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:59 +0x141

goroutine 88 [semacquire]:
sync.runtime_SemacquireMutex(0xc00022290c, 0xc036dfda00)
	/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc000222908)
	/usr/local/go/src/sync/mutex.go:134 +0x109
golang.org/x/tools/internal/lsp/cache.(*view).GetFile(0xc0002228f0, 0x1784e60, 0xc000256b40, 0xc046ca1b80, 0x42, 0x0, 0x0, 0x0, 0x0)
	/Users/muir/projects/tools/internal/lsp/cache/view.go:302 +0x4d
golang.org/x/tools/internal/lsp/cache.(*session).DidOpen(0xc000216000, 0x1784e60, 0xc000256b40, 0xc046ca1b80, 0x42)
	/Users/muir/projects/tools/internal/lsp/cache/session.go:195 +0x112
golang.org/x/tools/internal/lsp.(*Server).didOpen(0xc0001c2900, 0x1784e60, 0xc000256b40, 0xc02dbd1580, 0x0, 0xc04bb243c0)
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:20 +0x8a
golang.org/x/tools/internal/lsp.(*Server).DidOpen(0xc0001c2900, 0x1784e60, 0xc000256b40, 0xc02dbd1580, 0xc02dbd1580, 0x0)
	/Users/muir/projects/tools/internal/lsp/server.go:135 +0x49
golang.org/x/tools/internal/lsp/protocol.serverHandler.func1(0x1784e60, 0xc000256b40, 0xc0001f8f60)
	/Users/muir/projects/tools/internal/lsp/protocol/tsserver.go:104 +0x20c4
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0001dc4e0, 0xc0001f8f60, 0xc000214000, 0x1784e60, 0xc000256b40, 0xc0003ba140, 0xc000248b50)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:432 +0x117
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 89 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0000a2c00, 0xc0001f8fc0, 0xc000214000, 0x1784e60, 0xc000256ba0, 0xc0003ba190, 0xc000248b90)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 44 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0000a2cc0, 0xc0000ba7e0, 0xc000214000, 0x1784e60, 0xc0002b5cb0, 0xc0002e3860, 0xc0002d2fe0)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 90 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0002fe540, 0xc0001f9020, 0xc000214000, 0x1784e60, 0xc000256c00, 0xc0003ba1e0, 0xc000248bd0)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 74 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0000a2d20, 0xc0002947e0, 0xc000214000, 0x1784e60, 0xc0002ae240, 0xc000334190, 0xc00032e150)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 91 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc00029a240, 0xc0001f90e0, 0xc000214000, 0x1784e60, 0xc000256c60, 0xc0003ba230, 0xc000248c10)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 92 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0000a2de0, 0xc0001f91a0, 0xc000214000, 0x1784e60, 0xc000256cc0, 0xc0003ba280, 0xc000248c50)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 75 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0000a2e40, 0xc0002948a0, 0xc000214000, 0x1784e60, 0xc0002ae2a0, 0xc0003341e0, 0xc00032e190)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 98 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc00029a300, 0xc0003c4420, 0xc000214000, 0x1784e60, 0xc0001fd3b0, 0xc0001d8410, 0xc0001b2bd0)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 99 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0001dc540, 0xc0003c4480, 0xc000214000, 0x1784e60, 0xc0001fd410, 0xc0001d8460, 0xc0001b2c10)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 93 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0001dc5a0, 0xc0001f9320, 0xc000214000, 0x1784e60, 0xc000256d20, 0xc0003ba2d0, 0xc000248c90)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 100 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0000a2ea0, 0xc0003c44e0, 0xc000214000, 0x1784e60, 0xc0001fd470, 0xc0001d84b0, 0xc0001b2c50)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 76 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0001dc600, 0xc0002949c0, 0xc000214000, 0x1784e60, 0xc0002ae300, 0xc000334230, 0xc00032e1d0)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 94 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc00029a360, 0xc0001f9380, 0xc000214000, 0x1784e60, 0xc000256d80, 0xc0003ba320, 0xc000248cd0)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 101 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0000a2f00, 0xc0003c4660, 0xc000214000, 0x1784e60, 0xc0001fd4d0, 0xc0001d8500, 0xc0001b2c90)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 95 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0001dc660, 0xc0001f93e0, 0xc000214000, 0x1784e60, 0xc000256de0, 0xc0003ba370, 0xc000248d10)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 102 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0000a2fc0, 0xc0003c46c0, 0xc000214000, 0x1784e60, 0xc0001fd530, 0xc0001d8550, 0xc0001b2cd0)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 77 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0001dc6c0, 0xc000294b40, 0xc000214000, 0x1784e60, 0xc0002ae360, 0xc000334280, 0xc00032e210)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 45 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc00029a3c0, 0xc0000ba8a0, 0xc000214000, 0x1784e60, 0xc0002b5d10, 0xc0002e38b0, 0xc0002d3020)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 78 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0002fe5a0, 0xc000294ba0, 0xc000214000, 0x1784e60, 0xc0002ae3c0, 0xc0003342d0, 0xc00032e250)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 3848 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc00489b4a0, 0xc00778a060, 0xc000214000, 0x1784e60, 0xc0071f2090, 0xc008ec6000, 0xc004b32020)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 2309 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc004eccd20, 0xc005be0900, 0xc000214000, 0x1784e60, 0xc005cf9380, 0xc005cc7540, 0xc003b5da50)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 363 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc00029a420, 0xc000392780, 0xc000214000, 0x1784e60, 0xc000edfad0, 0xc0005dfc70, 0xc00060b650)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 2280 [chan receive, 2 minutes]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0002ffec0, 0xc0051cfc20, 0xc000214000, 0x1784e60, 0xc005cfafc0, 0xc0059d9b30, 0xc003ba4620)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 39598 [runnable]:
golang.org/x/tools/internal/lsp/cache.(*importer).cachePackage(0xc02c293740, 0x1784da0, 0xc01eaa6040, 0xc032eb6630, 0xc00019c5b0, 0x1)
	/Users/muir/projects/tools/internal/lsp/cache/check.go:241 +0x683
golang.org/x/tools/internal/lsp/cache.(*importer).typeCheck(0xc02c293740, 0xc03a02ab40, 0xd, 0xd, 0xc00ed66678, 0x0)
	/Users/muir/projects/tools/internal/lsp/cache/check.go:190 +0xa08
golang.org/x/tools/internal/lsp/cache.(*importer).getPkg(0xc02c293740, 0xc03a02ab40, 0xd, 0xd, 0xc00ed66678, 0x1036e01)
	/Users/muir/projects/tools/internal/lsp/cache/check.go:68 +0x480
golang.org/x/tools/internal/lsp/cache.(*importer).getPkg(0xc02c293740, 0xc03a02ab40, 0xd, 0x0, 0x0, 0x0)
	/Users/muir/projects/tools/internal/lsp/cache/check.go:81 +0x286
created by golang.org/x/tools/internal/lsp/cache.(*view).loadParseTypecheck
	/Users/muir/projects/tools/internal/lsp/cache/load.go:57 +0x392

goroutine 28513 [semacquire]:
sync.runtime_SemacquireMutex(0xc0001c296c, 0x100b900)
	/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc0001c2968)
	/usr/local/go/src/sync/mutex.go:134 +0x109
golang.org/x/tools/internal/lsp.(*Server).Diagnostics(0xc0001c2900, 0x1784da0, 0xc031738740, 0x178e000, 0xc0002228f0, 0xc039f68960, 0x55)
	/Users/muir/projects/tools/internal/lsp/diagnostics.go:33 +0x2a5
golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose.func1(0x178e000, 0xc0002228f0, 0xc0001c2900, 0xc039f68960, 0x55)
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:61 +0x67
created by golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:59 +0x141

goroutine 36566 [semacquire]:
sync.runtime_SemacquireMutex(0xc0001c296c, 0x100b900)
	/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc0001c2968)
	/usr/local/go/src/sync/mutex.go:134 +0x109
golang.org/x/tools/internal/lsp.(*Server).Diagnostics(0xc0001c2900, 0x1784da0, 0xc032e6c0c0, 0x178e000, 0xc0002228f0, 0xc02c40a000, 0x57)
	/Users/muir/projects/tools/internal/lsp/diagnostics.go:33 +0x2a5
golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose.func1(0x178e000, 0xc0002228f0, 0xc0001c2900, 0xc02c40a000, 0x57)
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:61 +0x67
created by golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:59 +0x141

goroutine 37643 [chan receive]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc004ecc540, 0xc0435a65a0, 0xc000214000, 0x1784e60, 0xc03c4ac630, 0xc040223810, 0xc009972fa0)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 24413 [semacquire]:
sync.runtime_SemacquireMutex(0xc00022290c, 0x1)
	/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc000222908)
	/usr/local/go/src/sync/mutex.go:134 +0x109
golang.org/x/tools/internal/lsp/cache.(*view).GetFile(0xc0002228f0, 0x1784da0, 0xc03174aec0, 0xc03aba8230, 0x48, 0x0, 0x0, 0x0, 0x0)
	/Users/muir/projects/tools/internal/lsp/cache/view.go:302 +0x4d
golang.org/x/tools/internal/lsp.getSourceFile(0x1784da0, 0xc03174aec0, 0x178e000, 0xc0002228f0, 0xc03aba8230, 0x48, 0x203007, 0x2b, 0x2ffe, 0x4081c00000000000, ...)
	/Users/muir/projects/tools/internal/lsp/util.go:17 +0x7d
golang.org/x/tools/internal/lsp.toProtocolDiagnostic(0x1784da0, 0xc03174aec0, 0x178e000, 0xc0002228f0, 0xc03aba8230, 0x48, 0x1a3, 0x32, 0xffffffffffffffff, 0x1a3, ...)
	/Users/muir/projects/tools/internal/lsp/diagnostics.go:84 +0xef
golang.org/x/tools/internal/lsp.toProtocolDiagnostics(0x1784da0, 0xc03174aec0, 0x178e000, 0xc0002228f0, 0xc034bac800, 0xa, 0x10, 0x3, 0x0, 0xc03af078b8, ...)
	/Users/muir/projects/tools/internal/lsp/diagnostics.go:74 +0x14a
golang.org/x/tools/internal/lsp.(*Server).publishDiagnostics(0xc0001c2900, 0x1784da0, 0xc03174aec0, 0x178e000, 0xc0002228f0, 0xc03cc78910, 0x48, 0xc034bac800, 0xa, 0x10, ...)
	/Users/muir/projects/tools/internal/lsp/diagnostics.go:60 +0x83
golang.org/x/tools/internal/lsp.(*Server).Diagnostics(0xc0001c2900, 0x1784da0, 0xc03174aec0, 0x178e000, 0xc0002228f0, 0xc00d1ddf80, 0x55)
	/Users/muir/projects/tools/internal/lsp/diagnostics.go:37 +0x3df
golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose.func1(0x178e000, 0xc0002228f0, 0xc0001c2900, 0xc00d1ddf80, 0x55)
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:61 +0x67
created by golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:59 +0x141

goroutine 38753 [semacquire]:
sync.runtime_SemacquireMutex(0xc0001c296c, 0x100b900)
	/usr/local/go/src/runtime/sema.go:71 +0x3d
sync.(*Mutex).Lock(0xc0001c2968)
	/usr/local/go/src/sync/mutex.go:134 +0x109
golang.org/x/tools/internal/lsp.(*Server).Diagnostics(0xc0001c2900, 0x1784da0, 0xc040aa7ec0, 0x178e000, 0xc0002228f0, 0xc039c709c0, 0x51)
	/Users/muir/projects/tools/internal/lsp/diagnostics.go:33 +0x2a5
golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose.func1(0x178e000, 0xc0002228f0, 0xc0001c2900, 0xc039c709c0, 0x51)
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:61 +0x67
created by golang.org/x/tools/internal/lsp.(*Server).cacheAndDiagnose
	/Users/muir/projects/tools/internal/lsp/text_synchronization.go:59 +0x141

goroutine 37831 [chan receive]:
golang.org/x/tools/internal/jsonrpc2.(*Conn).Run.func1(0xc0161d10e0, 0xc03ae69ec0, 0xc000214000, 0x1784e60, 0xc02f23def0, 0xc041f05590, 0xc0099b0010)
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:420 +0x38
created by golang.org/x/tools/internal/jsonrpc2.(*Conn).Run
	/Users/muir/projects/tools/internal/jsonrpc2/jsonrpc2.go:419 +0x6fc

goroutine 22196 [IO wait]:
internal/poll.runtime_pollWait(0x2a91bf8, 0x72, 0xffffffffffffffff)
	/usr/local/go/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc013e14b98, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc013e14b80, 0xc0113a1000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/go/src/internal/poll/fd_unix.go:169 +0x1f2
net.(*netFD).Read(0xc013e14b80, 0xc0113a1000, 0x1000, 0x1000, 0x11d152c, 0xc03680f938, 0x12dcc3a)
	/usr/local/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc013c4d628, 0xc0113a1000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/net.go:177 +0x69
net/http.(*connReader).Read(0xc02c093aa0, 0xc0113a1000, 0x1000, 0x1000, 0x0, 0xc03680fc00, 0x12e059c)
	/usr/local/go/src/net/http/server.go:787 +0x107
bufio.(*Reader).fill(0xc02cdf5ce0)
	/usr/local/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).ReadSlice(0xc02cdf5ce0, 0xc03680fa0a, 0x10379c4, 0xc03680fb00, 0x100d769, 0xc036f5e800, 0x100)
	/usr/local/go/src/bufio/bufio.go:356 +0x3d
bufio.(*Reader).ReadLine(0xc02cdf5ce0, 0xc03680fb08, 0xc00c596400, 0x28006d0, 0x0, 0x10bb5c2, 0x165ae20)
	/usr/local/go/src/bufio/bufio.go:385 +0x34
net/textproto.(*Reader).readLineSlice(0xc0380caa50, 0xc036f5e800, 0xc013e14b80, 0x0, 0x0, 0x84079cdb)
	/usr/local/go/src/net/textproto/reader.go:55 +0x6f
net/textproto.(*Reader).ReadLine(...)
	/usr/local/go/src/net/textproto/reader.go:36
net/http.readRequest(0xc02cdf5ce0, 0x0, 0xc036f5e800, 0x0, 0x0)
	/usr/local/go/src/net/http/request.go:968 +0x8d
net/http.(*conn).readRequest(0xc017fd0280, 0x1784da0, 0xc02b9524c0, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/http/server.go:967 +0x163
net/http.(*conn).serve(0xc017fd0280, 0x1784da0, 0xc02b9524c0)
	/usr/local/go/src/net/http/server.go:1819 +0x6ad
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2884 +0x2f4
@gopherbot gopherbot added this to the Unreleased milestone Jun 27, 2019
@gopherbot gopherbot added the gopls label Jun 27, 2019
@muirdm

This comment has been minimized.

Copy link
Author

@muirdm muirdm commented Jun 27, 2019

@muirdm muirdm closed this Jun 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.