#!stacks
"sigpanic" && "golang.dynamicFuncCallType"
Issue created by stacks.
func dynamicFuncCallType(info *types.Info, call *ast.CallExpr) types.Type {
if typesinternal.ClassifyCall(info, call) == typesinternal.CallDynamic {
return info.Types[call.Fun].Type.Underlying() <--- panic (info.Types[call.Fun] is zero)
}
return nil
}
This stack WP7Ohw
was reported by telemetry:
crash/crash
runtime.gopanic:+69,+0x167
runtime.panicmem:=262,+0x358
runtime.sigpanic:+19,+0x328
golang.org/x/tools/gopls/internal/golang.dynamicFuncCallType:+2,+0x4d
golang.org/x/tools/gopls/internal/golang.implFuncs-range1:+28,+0x253
golang.org/x/tools/go/ast/inspector.Cursor.Enclosing.func1:+3,+0x73
golang.org/x/tools/gopls/internal/golang.implFuncs:+25,+0x2c9
golang.org/x/tools/gopls/internal/golang.implementations:+12,+0xc4
golang.org/x/tools/gopls/internal/golang.Implementation:+4,+0xc5
golang.org/x/tools/gopls/internal/server.(*server).Implementation:+17,+0x338
golang.org/x/tools/gopls/internal/protocol.serverDispatch:+346,+0x5059
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.ServerHandler.func4:+5,+0x84
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.handshaker.func5:+52,+0x908
golang.org/x/tools/gopls/internal/protocol.Handlers.MustReplyHandler.func1:+2,+0xc5
golang.org/x/tools/gopls/internal/protocol.Handlers.AsyncHandler.func2.2:+3,+0x95
runtime.goexit:+0,+0x0
golang.org/x/tools/gopls@v0.19.0-pre.3 go1.24.4 darwin/amd64 other,vscode (2)
Dups: -Ih_nA rB6ZAA PCnJlA WJN4Cw
Comment From: zigo101
Looks same as https://github.com/golang/go/issues/74303
Comment From: adonovan
Looks same as #74303
I doubt it: this crash was in a program built with go1.24.
Comment From: adonovan
It's easy to reproduce:
xtools$ cat a.go
package p
var _ = foo()
xtools$ gopls implementation ./a.go:#23
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x20 pc=0x1050629ec]
goroutine 1 gp=0x140000021c0 m=5 mp=0x14000090808 [running]:
panic({0x1056204e0?, 0x105f96700?})
/Users/adonovan/w/goroot/src/runtime/panic.go:802 +0x150 fp=0x140000451b0 sp=0x14000045100 pc=0x1047e8630
runtime.panicmem(...)
/Users/adonovan/w/goroot/src/runtime/panic.go:262
runtime.sigpanic()
/Users/adonovan/w/goroot/src/runtime/signal_unix.go:925 +0x2e8 fp=0x14000045210 sp=0x140000451b0 pc=0x1047eac48
golang.org/x/tools/gopls/internal/golang.dynamicFuncCallType(0x1400b8d0f60, 0x1400b8d5100)
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/golang/implementation.go:1120 +0x4c fp=0x14000045250 sp=0x14000045220 pc=0x1050629ec
golang.org/x/tools/gopls/internal/golang.implFuncs-range1({0x1400a9094b8?, 0x5061744?})
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/golang/implementation.go:1006 +0x104 fp=0x140000452d0 sp=0x14000045250 pc=0x105061944
golang.org/x/tools/go/ast/inspector.Cursor.Enclosing.func1(0x1400b8d53c0)
/Users/adonovan/go/pkg/mod/golang.org/x/tools@v0.34.1-0.20250610205101-c26dd3ba555e/go/ast/inspector/cursor.go:199 +0x84 fp=0x14000045320 sp=0x140000452d0 pc=0x104b96df4
golang.org/x/tools/gopls/internal/golang.implFuncs(0x1400b9307b0, 0x1400987d710, 0x433)
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/golang/implementation.go:978 +0x204 fp=0x140000453d0 sp=0x14000045320 pc=0x105061754
golang.org/x/tools/gopls/internal/golang.implementations({0x1057a8b18, 0x1400adb9890}, 0x1400b7ee240, {0x1057ad970?, 0x1400830a2a0?}, {0x4f96254?, 0x1?})
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/golang/implementation.go:83 +0x90 fp=0x14000045480 sp=0x140000453d0 pc=0x10505cd80
golang.org/x/tools/gopls/internal/golang.Implementation({0x1057a8b18?, 0x1400adb9740?}, 0x1400b7ee240, {0x1057ad970, 0x1400830a2a0}, {0x2?, 0xc?})
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/golang/implementation.go:62 +0x8c fp=0x14000045560 sp=0x14000045480 pc=0x10505c98c
golang.org/x/tools/gopls/internal/server.(*server).Implementation(0x1400015c780, {0x1057a8b18, 0x1400adb9740}, 0x1400adb9650)
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/server/implementation.go:35 +0x230 fp=0x14000045690 sp=0x14000045560 pc=0x1050fb5b0
golang.org/x/tools/gopls/internal/cmd.(*implementation).Run(0x1400013d810?, {0x1057a8b18, 0x1400001bad0}, {0x1400010c410, 0x0?, 0x0?})
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/cmd/implementation.go:62 +0x1ac fp=0x140000458c0 sp=0x14000045690 pc=0x1051510fc
golang.org/x/tools/internal/tool.Run({0x1057a8b18, 0x1400001bad0}, 0x1400013d810, {0x1057abf20, 0x140002c9020}, {0x1400010c410, 0x1, 0x1})
/Users/adonovan/go/pkg/mod/golang.org/x/tools@v0.34.1-0.20250610205101-c26dd3ba555e/internal/tool/tool.go:213 +0x46c fp=0x14000045b10 sp=0x140000458c0 pc=0x104b00b1c
golang.org/x/tools/gopls/internal/cmd.(*Application).Run(0x140000197a0, {0x1057a8ae0, 0x106005ea0}, {0x1400010c400, 0x2, 0x2})
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/cmd/cmd.go:245 +0x238 fp=0x14000045bd0 sp=0x14000045b10 pc=0x105148a18
golang.org/x/tools/internal/tool.Run({0x1057a8ae0, 0x106005ea0}, 0x1400013d7a0, {0x1057abbe0, 0x140000197a0}, {0x1400010c400, 0x2, 0x2})
/Users/adonovan/go/pkg/mod/golang.org/x/tools@v0.34.1-0.20250610205101-c26dd3ba555e/internal/tool/tool.go:213 +0x46c fp=0x14000045e20 sp=0x14000045bd0 pc=0x104b00b1c
golang.org/x/tools/internal/tool.Main({0x1057a8ae0, 0x106005ea0}, {0x1057abbe0, 0x140000197a0}, {0x1400010c400, 0x2, 0x2})
/Users/adonovan/go/pkg/mod/golang.org/x/tools@v0.34.1-0.20250610205101-c26dd3ba555e/internal/tool/tool.go:94 +0xf8 fp=0x14000045ed0 sp=0x14000045e20 pc=0x104b005a8
main.main()
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/main.go:56 +0x1dc fp=0x14000045f40 sp=0x14000045ed0 pc=0x10515d7fc
runtime.main()
/Users/adonovan/w/goroot/src/runtime/proc.go:285 +0x278 fp=0x14000045fd0 sp=0x14000045f40 pc=0x1047b3da8
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x14000045fd0 sp=0x14000045fd0 pc=0x1047f1224
goroutine 2 gp=0x14000002700 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x1400006af90 sp=0x1400006af70 pc=0x1047e8a70
runtime.goparkunlock(...)
/Users/adonovan/w/goroot/src/runtime/proc.go:466
runtime.forcegchelper()
/Users/adonovan/w/goroot/src/runtime/proc.go:373 +0xb4 fp=0x1400006afd0 sp=0x1400006af90 pc=0x1047b40f4
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x1400006afd0 sp=0x1400006afd0 pc=0x1047f1224
created by runtime.init.7 in goroutine 1
/Users/adonovan/w/goroot/src/runtime/proc.go:361 +0x24
goroutine 3 gp=0x14000002c40 m=nil [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x1400006b760 sp=0x1400006b740 pc=0x1047e8a70
runtime.goparkunlock(...)
/Users/adonovan/w/goroot/src/runtime/proc.go:466
runtime.bgsweep(0x1400007a000)
/Users/adonovan/w/goroot/src/runtime/mgcsweep.go:323 +0x104 fp=0x1400006b7b0 sp=0x1400006b760 pc=0x10479ca34
runtime.gcenable.gowrap1()
/Users/adonovan/w/goroot/src/runtime/mgc.go:212 +0x28 fp=0x1400006b7d0 sp=0x1400006b7b0 pc=0x104790698
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x1400006b7d0 sp=0x1400006b7d0 pc=0x1047f1224
created by runtime.gcenable in goroutine 1
/Users/adonovan/w/goroot/src/runtime/mgc.go:212 +0x6c
goroutine 17 gp=0x14000092380 m=nil [GC scavenge wait]:
runtime.gopark(0x10000?, 0x1054f9a10?, 0x0?, 0x0?, 0x0?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x14000066760 sp=0x14000066740 pc=0x1047e8a70
runtime.goparkunlock(...)
/Users/adonovan/w/goroot/src/runtime/proc.go:466
runtime.(*scavengerState).park(0x105fdb7a0)
/Users/adonovan/w/goroot/src/runtime/mgcscavenge.go:425 +0x5c fp=0x14000066790 sp=0x14000066760 pc=0x10479a55c
runtime.bgscavenge(0x1400007a000)
/Users/adonovan/w/goroot/src/runtime/mgcscavenge.go:658 +0xac fp=0x140000667b0 sp=0x14000066790 pc=0x10479aafc
runtime.gcenable.gowrap2()
/Users/adonovan/w/goroot/src/runtime/mgc.go:213 +0x28 fp=0x140000667d0 sp=0x140000667b0 pc=0x104790638
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x140000667d0 sp=0x140000667d0 pc=0x1047f1224
created by runtime.gcenable in goroutine 1
/Users/adonovan/w/goroot/src/runtime/mgc.go:213 +0xac
goroutine 33 gp=0x14000142000 m=nil [cleanup wait]:
runtime.gopark(0x105f365f0?, 0x0?, 0x0?, 0x0?, 0x0?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x1400006a740 sp=0x1400006a720 pc=0x1047e8a70
runtime.goparkunlock(...)
/Users/adonovan/w/goroot/src/runtime/proc.go:466
runtime.(*cleanupQueue).dequeue(0x105fdc300)
/Users/adonovan/w/goroot/src/runtime/mcleanup.go:439 +0x110 fp=0x1400006a780 sp=0x1400006a740 pc=0x10478cb70
runtime.runCleanups()
/Users/adonovan/w/goroot/src/runtime/mcleanup.go:635 +0x40 fp=0x1400006a7d0 sp=0x1400006a780 pc=0x10478d380
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x1400006a7d0 sp=0x1400006a7d0 pc=0x1047f1224
created by runtime.(*cleanupQueue).createGs in goroutine 1
/Users/adonovan/w/goroot/src/runtime/mcleanup.go:589 +0x108
goroutine 84 gp=0x140000928c0 m=nil [GC worker (idle)]:
runtime.gopark(0x106007320?, 0x1?, 0xa0?, 0xf8?, 0x140000c85b0?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x14000066f10 sp=0x14000066ef0 pc=0x1047e8a70
runtime.gcBgMarkWorker(0x14000384cb0)
/Users/adonovan/w/goroot/src/runtime/mgc.go:1463 +0xe0 fp=0x14000066fb0 sp=0x14000066f10 pc=0x104792d10
runtime.gcBgMarkStartWorkers.gowrap1()
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x28 fp=0x14000066fd0 sp=0x14000066fb0 pc=0x104792bf8
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x14000066fd0 sp=0x14000066fd0 pc=0x1047f1224
created by runtime.gcBgMarkStartWorkers in goroutine 1
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x140
goroutine 83 gp=0x14000003340 m=6 mp=0x14000500008 [GC mark termination]:
runtime.systemstack_switch()
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:249 +0x8 fp=0x1400006c670 sp=0x1400006c660 pc=0x1047eee38
runtime.forEachP(...)
/Users/adonovan/w/goroot/src/runtime/proc.go:2079
runtime.gcMarkDone()
/Users/adonovan/w/goroot/src/runtime/mgc.go:914 +0x148 fp=0x1400006c710 sp=0x1400006c670 pc=0x1047914d8
runtime.gcBgMarkWorker(0x14000384cb0)
/Users/adonovan/w/goroot/src/runtime/mgc.go:1600 +0x374 fp=0x1400006c7b0 sp=0x1400006c710 pc=0x104792fa4
runtime.gcBgMarkStartWorkers.gowrap1()
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x28 fp=0x1400006c7d0 sp=0x1400006c7b0 pc=0x104792bf8
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x1400006c7d0 sp=0x1400006c7d0 pc=0x1047f1224
created by runtime.gcBgMarkStartWorkers in goroutine 1
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x140
goroutine 43 gp=0x14000092c40 m=nil [GC worker (idle)]:
runtime.gopark(0x30b0a415b632?, 0x1?, 0x5a?, 0xd?, 0x140000c88c0?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x14000067f10 sp=0x14000067ef0 pc=0x1047e8a70
runtime.gcBgMarkWorker(0x14000384cb0)
/Users/adonovan/w/goroot/src/runtime/mgc.go:1463 +0xe0 fp=0x14000067fb0 sp=0x14000067f10 pc=0x104792d10
runtime.gcBgMarkStartWorkers.gowrap1()
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x28 fp=0x14000067fd0 sp=0x14000067fb0 pc=0x104792bf8
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x14000067fd0 sp=0x14000067fd0 pc=0x1047f1224
created by runtime.gcBgMarkStartWorkers in goroutine 1
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x140
goroutine 42 gp=0x140000036c0 m=nil [GC worker (idle)]:
runtime.gopark(0x106007320?, 0x3?, 0xb1?, 0xb?, 0x14000102c40?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x1400bc22f10 sp=0x1400bc22ef0 pc=0x1047e8a70
runtime.gcBgMarkWorker(0x14000384cb0)
/Users/adonovan/w/goroot/src/runtime/mgc.go:1463 +0xe0 fp=0x1400bc22fb0 sp=0x1400bc22f10 pc=0x104792d10
runtime.gcBgMarkStartWorkers.gowrap1()
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x28 fp=0x1400bc22fd0 sp=0x1400bc22fb0 pc=0x104792bf8
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x1400bc22fd0 sp=0x1400bc22fd0 pc=0x1047f1224
created by runtime.gcBgMarkStartWorkers in goroutine 1
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x140
goroutine 74 gp=0x14000003880 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x1400006df10 sp=0x1400006def0 pc=0x1047e8a70
runtime.gcBgMarkWorker(0x14000384cb0)
/Users/adonovan/w/goroot/src/runtime/mgc.go:1463 +0xe0 fp=0x1400006dfb0 sp=0x1400006df10 pc=0x104792d10
runtime.gcBgMarkStartWorkers.gowrap1()
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x28 fp=0x1400006dfd0 sp=0x1400006dfb0 pc=0x104792bf8
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x1400006dfd0 sp=0x1400006dfd0 pc=0x1047f1224
created by runtime.gcBgMarkStartWorkers in goroutine 1
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x140
goroutine 75 gp=0x14000003a40 m=nil [GC worker (idle)]:
runtime.gopark(0x106007320?, 0x3?, 0x19?, 0x6f?, 0x0?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x14000242710 sp=0x140002426f0 pc=0x1047e8a70
runtime.gcBgMarkWorker(0x14000384cb0)
/Users/adonovan/w/goroot/src/runtime/mgc.go:1463 +0xe0 fp=0x140002427b0 sp=0x14000242710 pc=0x104792d10
runtime.gcBgMarkStartWorkers.gowrap1()
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x28 fp=0x140002427d0 sp=0x140002427b0 pc=0x104792bf8
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x140002427d0 sp=0x140002427d0 pc=0x1047f1224
created by runtime.gcBgMarkStartWorkers in goroutine 1
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x140
goroutine 76 gp=0x14000003c00 m=nil [GC worker (idle)]:
runtime.gopark(0x106007320?, 0x3?, 0xbd?, 0x5d?, 0x0?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x14000242f10 sp=0x14000242ef0 pc=0x1047e8a70
runtime.gcBgMarkWorker(0x14000384cb0)
/Users/adonovan/w/goroot/src/runtime/mgc.go:1463 +0xe0 fp=0x14000242fb0 sp=0x14000242f10 pc=0x104792d10
runtime.gcBgMarkStartWorkers.gowrap1()
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x28 fp=0x14000242fd0 sp=0x14000242fb0 pc=0x104792bf8
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x14000242fd0 sp=0x14000242fd0 pc=0x1047f1224
created by runtime.gcBgMarkStartWorkers in goroutine 1
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x140
goroutine 85 gp=0x14000092e00 m=nil [GC worker (idle)]:
runtime.gopark(0x106007320?, 0x1?, 0x70?, 0xf2?, 0x0?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x14000107f10 sp=0x14000107ef0 pc=0x1047e8a70
runtime.gcBgMarkWorker(0x14000384cb0)
/Users/adonovan/w/goroot/src/runtime/mgc.go:1463 +0xe0 fp=0x14000107fb0 sp=0x14000107f10 pc=0x104792d10
runtime.gcBgMarkStartWorkers.gowrap1()
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x28 fp=0x14000107fd0 sp=0x14000107fb0 pc=0x104792bf8
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x14000107fd0 sp=0x14000107fd0 pc=0x1047f1224
created by runtime.gcBgMarkStartWorkers in goroutine 1
/Users/adonovan/w/goroot/src/runtime/mgc.go:1373 +0x140
goroutine 150 gp=0x14000502540 m=nil [chan receive]:
runtime.gopark(0x140004a2240?, 0x140000a0780?, 0x10?, 0x6a?, 0x14000245748?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x140002456f0 sp=0x140002456d0 pc=0x1047e8a70
runtime.chanrecv(0x140002e60e0, 0x140002457c0, 0x1)
/Users/adonovan/w/goroot/src/runtime/chan.go:667 +0x40c fp=0x14000245770 sp=0x140002456f0 pc=0x10478050c
runtime.chanrecv2(0x0?, 0x140002e6d20?)
/Users/adonovan/w/goroot/src/runtime/chan.go:514 +0x14 fp=0x140002457a0 sp=0x14000245770 pc=0x1047800e4
golang.org/x/tools/gopls/internal/protocol.LogEvent.func1.1()
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/protocol/context.go:47 +0x48 fp=0x140002457d0 sp=0x140002457a0 pc=0x104ae0f08
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x140002457d0 sp=0x140002457d0 pc=0x1047f1224
created by golang.org/x/tools/gopls/internal/protocol.LogEvent.func1 in goroutine 1
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/protocol/context.go:46 +0x24
goroutine 93 gp=0x14000502700 m=nil [sleep]:
runtime.gopark(0x30afb13b0595?, 0x0?, 0x0?, 0x0?, 0x0?)
/Users/adonovan/w/goroot/src/runtime/proc.go:460 +0xc0 fp=0x14000108c70 sp=0x14000108c50 pc=0x1047e8a70
time.Sleep(0x45d964b800)
/Users/adonovan/w/goroot/src/runtime/time.go:363 +0x150 fp=0x14000108cd0 sp=0x14000108c70 pc=0x1047ecd70
golang.org/x/tools/gopls/internal/filecache.gc({0x14000038900, 0x24})
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/filecache/filecache.go:457 +0xdc fp=0x14000108fb0 sp=0x14000108cd0 pc=0x104e8d6fc
golang.org/x/tools/gopls/internal/filecache.getCacheDir.func1.gowrap1()
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/filecache/filecache.go:365 +0x28 fp=0x14000108fd0 sp=0x14000108fb0 pc=0x104e8e5e8
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x14000108fd0 sp=0x14000108fd0 pc=0x1047f1224
created by golang.org/x/tools/gopls/internal/filecache.getCacheDir.func1 in goroutine 1
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/filecache/filecache.go:365 +0x154
goroutine 92 gp=0x14000502a80 m=3 mp=0x14000071008 [syscall]:
syscall.syscall6(0x90010100248698?, 0x12b0e5f48?, 0x1063e4108?, 0x90?, 0x14000071008?, 0x140002321b0?, 0x14000248678?)
/Users/adonovan/w/goroot/src/runtime/sys_darwin.go:60 +0x40 fp=0x14000248610 sp=0x14000248550 pc=0x1047ec750
syscall.wait4(0x140002486a8?, 0x10486cebc?, 0x90?, 0x105773220?)
/Users/adonovan/w/goroot/src/syscall/zsyscall_darwin_arm64.go:44 +0x4c fp=0x14000248670 sp=0x14000248610 pc=0x10480948c
syscall.Wait4(0x140000021c0?, 0x140002486e4, 0x3?, 0x10000010477f278?)
/Users/adonovan/w/goroot/src/syscall/syscall_bsd.go:144 +0x28 fp=0x140002486b0 sp=0x14000248670 pc=0x1048069c8
os.(*Process).pidWait.func1(...)
/Users/adonovan/w/goroot/src/os/exec_unix.go:64
os.ignoringEINTR2[...](...)
/Users/adonovan/w/goroot/src/os/file_posix.go:266
os.(*Process).pidWait(0x140004c71c0)
/Users/adonovan/w/goroot/src/os/exec_unix.go:63 +0x9c fp=0x14000248710 sp=0x140002486b0 pc=0x10486cf0c
os.(*Process).wait(0x14000502a80?)
/Users/adonovan/w/goroot/src/os/exec_unix.go:28 +0x24 fp=0x14000248730 sp=0x14000248710 pc=0x10486ce34
os.(*Process).Wait(...)
/Users/adonovan/w/goroot/src/os/exec.go:340
os/exec.(*Cmd).Wait(0x1400015c480)
/Users/adonovan/w/goroot/src/os/exec/exec.go:922 +0x38 fp=0x140002487a0 sp=0x14000248730 pc=0x10489ef58
golang.org/x/telemetry.startChild.func1()
/Users/adonovan/go/pkg/mod/golang.org/x/telemetry@v0.0.0-20250417124945-06ef541f3fa3/start.go:246 +0x24 fp=0x140002487d0 sp=0x140002487a0 pc=0x104a9a574
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x140002487d0 sp=0x140002487d0 pc=0x1047f1224
created by golang.org/x/telemetry.startChild in goroutine 1
/Users/adonovan/go/pkg/mod/golang.org/x/telemetry@v0.0.0-20250417124945-06ef541f3fa3/start.go:245 +0x6d8
goroutine 7707 gp=0x1400affca80 m=nil [runnable]:
runtime.mapIterNext(0x14015d9d488?)
/Users/adonovan/w/goroot/src/runtime/map_swiss.go:172 +0x34 fp=0x14015d9d430 sp=0x14015d9d430 pc=0x104788b64
go/types.(*Scope).Names(0x140069c2480)
/Users/adonovan/w/goroot/src/go/types/scope.go:57 +0x9c fp=0x14015d9d4f0 sp=0x14015d9d430 pc=0x104b6cd9c
golang.org/x/tools/go/types/objectpath.(*Encoder).scopeObjects(0x14015d9d708?, 0x140069c2480)
/Users/adonovan/go/pkg/mod/golang.org/x/tools@v0.34.1-0.20250610205101-c26dd3ba555e/go/types/objectpath/objectpath.go:809 +0x88 fp=0x14015d9d550 sp=0x14015d9d4f0 pc=0x104d573b8
golang.org/x/tools/go/types/objectpath.(*Encoder).For(0x140173c1360, {0x1057b99d8, 0x1400d8edda0})
/Users/adonovan/go/pkg/mod/golang.org/x/tools@v0.34.1-0.20250610205101-c26dd3ba555e/go/types/objectpath/objectpath.go:272 +0x24c fp=0x14015d9d7e0 sp=0x14015d9d550 pc=0x104d53ffc
golang.org/x/tools/go/types/objectpath.(*Encoder).For-fm({0x1057b99d8?, 0x1400d8edda0?})
<autogenerated>:1 +0x3c fp=0x14015d9d810 sp=0x14015d9d7e0 pc=0x104f5cefc
golang.org/x/tools/gopls/internal/cache/xrefs.Index-range1({0x140167e8948?, 0x4f5fac0?})
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/cache/xrefs/xrefs.go:67 +0x1ec fp=0x14015d9d940 sp=0x14015d9d810 pc=0x104f6012c
golang.org/x/tools/go/ast/inspector.Cursor.Preorder.func1(0x14018919500)
/Users/adonovan/go/pkg/mod/golang.org/x/tools@v0.34.1-0.20250610205101-c26dd3ba555e/go/ast/inspector/cursor.go:132 +0xbc fp=0x14015d9d990 sp=0x14015d9d940 pc=0x104b96a7c
golang.org/x/tools/gopls/internal/cache/xrefs.Index({0x14017a290e0, 0x21, 0x140164b5a10?}, 0x14015c4bf20, 0x14015d9e000)
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/cache/xrefs/xrefs.go:47 +0x1e0 fp=0x14015d9dba0 sp=0x14015d9d990 pc=0x104f5fad0
golang.org/x/tools/gopls/internal/cache.(*syntaxPackage).xrefs.func1()
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/cache/package.go:72 +0x30 fp=0x14015d9dbe0 sp=0x14015d9dba0 pc=0x104f8c7e0
sync.(*Once).doSlow(0x64?, 0x2?)
/Users/adonovan/w/goroot/src/sync/once.go:78 +0xe0 fp=0x14015d9dc30 sp=0x14015d9dbe0 pc=0x1047fb090
sync.(*Once).Do(...)
/Users/adonovan/w/goroot/src/sync/once.go:69
golang.org/x/tools/gopls/internal/cache.(*syntaxPackage).xrefs(0x14015c49b00)
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/cache/package.go:71 +0x44 fp=0x14015d9dc60 sp=0x14015d9dc30 pc=0x104f8c774
golang.org/x/tools/gopls/internal/cache.storePackageResults({0x1057a8b18, 0x1400af53440}, 0x1400662db80, 0x140192387b0)
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/cache/check.go:417 +0x88 fp=0x14015d9dfa0 sp=0x14015d9dc60 pc=0x104f6e108
golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).getPackage.func1.gowrap1()
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/cache/check.go:407 +0x2c fp=0x14015d9dfd0 sp=0x14015d9dfa0 pc=0x104f6deac
runtime.goexit({})
/Users/adonovan/w/goroot/src/runtime/asm_arm64.s:1268 +0x4 fp=0x14015d9dfd0 sp=0x14015d9dfd0 pc=0x1047f1224
created by golang.org/x/tools/gopls/internal/cache.(*typeCheckBatch).getPackage.func1 in goroutine 5174
/Users/adonovan/go/pkg/mod/golang.org/x/tools/gopls@v0.19.1/internal/cache/check.go:407 +0x314
Comment From: gopherbot
Change https://go.dev/cl/682955 mentions this issue: gopls/internal/golang: implementation: fix nil panic
Comment From: adonovan
This stack -Ih_nA
was reported by telemetry:
crash/crash
runtime.gopanic:+69,+0x153
runtime.panicmem:=262,+0x2ff
runtime.sigpanic:+19,+0x2cc
golang.org/x/tools/gopls/internal/golang.dynamicFuncCallType:+2,+0x50
golang.org/x/tools/gopls/internal/golang.funcUses-range1:+5,+0x1af
golang.org/x/tools/go/ast/inspector.Cursor.Preorder.func1:+6,+0xbf
golang.org/x/tools/gopls/internal/golang.funcUses:+5,+0x1cb
golang.org/x/tools/gopls/internal/golang.implFuncs-range1:+13,+0x3e7
golang.org/x/tools/go/ast/inspector.Cursor.Enclosing.func1:+3,+0x87
golang.org/x/tools/gopls/internal/golang.implFuncs:+25,+0x243
golang.org/x/tools/gopls/internal/golang.implementations:+12,+0x8f
golang.org/x/tools/gopls/internal/golang.Implementation:+4,+0x8b
golang.org/x/tools/gopls/internal/server.(*server).Implementation:+17,+0x277
golang.org/x/tools/gopls/internal/protocol.serverDispatch:+346,+0x4293
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.ServerHandler.func4:+5,+0x73
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.handshaker.func5:+52,+0x68f
golang.org/x/tools/gopls/internal/protocol.Handlers.MustReplyHandler.func1:+2,+0xbf
golang.org/x/tools/gopls@v0.19.1 go1.24.4 darwin/arm64 other (1)
This stack rB6ZAA
was reported by telemetry:
crash/crash
runtime.gopanic:+69,+0x153
runtime.panicmem:=262,+0x2ff
runtime.sigpanic:+19,+0x2cc
golang.org/x/tools/gopls/internal/golang.dynamicFuncCallType:+2,+0x50
golang.org/x/tools/gopls/internal/golang.implFuncs-range1:+28,+0x22f
golang.org/x/tools/go/ast/inspector.Cursor.Enclosing.func1:+3,+0x87
golang.org/x/tools/gopls/internal/golang.implFuncs:+25,+0x243
golang.org/x/tools/gopls/internal/golang.implementations:+12,+0x8f
golang.org/x/tools/gopls/internal/golang.Implementation:+4,+0x8b
golang.org/x/tools/gopls/internal/server.(*server).Implementation:+17,+0x277
golang.org/x/tools/gopls/internal/protocol.serverDispatch:+346,+0x4293
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.ServerHandler.func4:+5,+0x73
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.handshaker.func5:+52,+0x68f
golang.org/x/tools/gopls/internal/protocol.Handlers.MustReplyHandler.func1:+2,+0xbf
golang.org/x/tools/gopls/internal/protocol.Handlers.AsyncHandler.func2.2:+3,+0x8f
runtime.goexit:+0,+0x3
golang.org/x/tools/gopls@v0.19.1 go1.24.4 darwin/arm64 other,vscode (1)
Comment From: adonovan
This stack PCnJlA
was reported by telemetry:
crash/crash
runtime.gopanic:+69,+0x167
runtime.panicmem:=262,+0x197
runtime.sigpanic:+9,+0x167
golang.org/x/tools/gopls/internal/golang.dynamicFuncCallType:+2,+0x4d
golang.org/x/tools/gopls/internal/golang.implFuncs-range1:+28,+0x253
golang.org/x/tools/go/ast/inspector.Cursor.Enclosing.func1:+3,+0x73
golang.org/x/tools/gopls/internal/golang.implFuncs:+25,+0x2c9
golang.org/x/tools/gopls/internal/golang.implementations:+12,+0xc4
golang.org/x/tools/gopls/internal/golang.Implementation:+4,+0xc5
golang.org/x/tools/gopls/internal/server.(*server).Implementation:+17,+0x338
golang.org/x/tools/gopls/internal/protocol.serverDispatch:+346,+0x5059
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.ServerHandler.func4:+5,+0x84
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.handshaker.func5:+52,+0x908
golang.org/x/tools/gopls/internal/protocol.Handlers.MustReplyHandler.func1:+2,+0xc5
golang.org/x/tools/gopls/internal/protocol.Handlers.AsyncHandler.func2.2:+3,+0x95
runtime.goexit:+0,+0x0
golang.org/x/tools/gopls@v0.19.1 go1.24.4 windows/amd64 vscode (1)
golang.org/x/tools/gopls@v0.19.1 go1.24.2 windows/amd64 other (1)
This stack WJN4Cw
was reported by telemetry:
crash/crash
runtime.gopanic:+69,+0x167
runtime.panicmem:=262,+0x358
runtime.sigpanic:+19,+0x328
golang.org/x/tools/gopls/internal/golang.dynamicFuncCallType:+2,+0x4d
golang.org/x/tools/gopls/internal/golang.funcUses-range1:+5,+0x1eb
golang.org/x/tools/go/ast/inspector.Cursor.Preorder.func1:+6,+0xab
golang.org/x/tools/gopls/internal/golang.funcUses:+5,+0x228
golang.org/x/tools/gopls/internal/golang.implFuncs-range1:+13,+0x3f6
golang.org/x/tools/go/ast/inspector.Cursor.Enclosing.func1:+3,+0x73
golang.org/x/tools/gopls/internal/golang.implFuncs:+25,+0x2c9
golang.org/x/tools/gopls/internal/golang.implementations:+12,+0xc4
golang.org/x/tools/gopls/internal/golang.Implementation:+4,+0xc5
golang.org/x/tools/gopls/internal/server.(*server).Implementation:+17,+0x338
golang.org/x/tools/gopls/internal/protocol.serverDispatch:+346,+0x5059
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.ServerHandler.func4:+5,+0x84
golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.handshaker.func5:+52,+0x908
golang.org/x/tools/gopls/internal/protocol.Handlers.MustReplyHandler.func1:+2,+0xc5
golang.org/x/tools/gopls@v0.19.1 go1.24.4 linux/amd64 other,vscode (12)