x/tools/gopls: Package.Path called on nil Package in AddTestForFunc
Closed this issue · 2 comments
adonovan commented
#!stacks
"sigpanic" && "types.(*Package).Path" && "AddTestForFunc.func4"
Issue created by stacks.
Another case of calling Obj().Pkg().Path() without checking for nil (unsafe.Pointer or builtin-in error):
var isContextType = func(t types.Type) bool {
named, ok := t.(*types.Named)
if !ok {
return false
}
return named.Obj().Pkg().Path() == "context" && named.Obj().Name() == "Context" <--- SEGV here
}This stack 651rTQ was reported by telemetry:
crash/crashruntime.gopanic:+69runtime.panicmem:=262runtime.sigpanic:+19go/types.(*Package).Path:=34golang.org/x/tools/gopls/internal/golang.AddTestForFunc.func4:=490golang.org/x/tools/gopls/internal/golang.AddTestForFunc:+282golang.org/x/tools/gopls/internal/server.(*commandHandler).AddTest.func1:+4golang.org/x/tools/gopls/internal/server.(*commandHandler).run.func2:+3golang.org/x/tools/gopls/internal/server.(*commandHandler).run:+81golang.org/x/tools/gopls/internal/server.(*commandHandler).AddTest:+2golang.org/x/tools/gopls/internal/protocol/command.Dispatch:+25golang.org/x/tools/gopls/internal/server.(*server).ExecuteCommand:+28golang.org/x/tools/gopls/internal/protocol.serverDispatch:+674golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.ServerHandler.func3:+5golang.org/x/tools/gopls/internal/lsprpc.(*streamServer).ServeStream.handshaker.func4:+52golang.org/x/tools/gopls/internal/protocol.Handlers.MustReplyHandler.func1:+2golang.org/x/tools/gopls/internal/protocol.Handlers.AsyncHandler.func2.2:+3runtime.goexit:+0
golang.org/x/tools/gopls@v0.18.1 go1.23.6 darwin/arm64 other (1)
gabyhelp commented
Related Issues
- x/tools/gopls: nil deref panic in go.test code action #72907 (closed)
- x/tools/gopls: nil *types.Package panic in testKind #73096 (closed)
- x/tools/gopls: crash in testFuncs with *error argument #70927 (closed)
- x/tools/gopls: nil deref in Snapshot.MetadataForFile #73114
- x/tools/gopls: automated issue report (crash) #40449 (closed)
- x/tools/gopls: Hover: invalid nil entry in types.Defs map #69362 (closed)
- x/tools/gopls: Rename: crash due to Info.Defs[id]=nil bug in checkStructField #70968 (closed)
- x/tools/gopls: analysisinternal.ZeroValue crash on (presumably) unsafe.Pointer #70585 (closed)
- x/tools/gopls: nil Signature (?) deref in Completion #70634 (closed)
- x/tools/gopls: "nil handle" assert in getPackageHandles #71353
(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)
gopherbot commented
Change https://go.dev/cl/673198 mentions this issue: gopls/internal/golang: AddTest: fix types.Package.Path nil panic