Open RichardoC opened 1 year ago
This is a very cool project, but when I tried it on one of my side projects it failed with this obscure panic
Steps to reproduce exactly. Not all steps required but it's what I did
# Running inside a container for isolation docker run --rm -it ubuntu:22.04 apt update && apt install -y golang apt install -y ca-certificates # project I want to visualise git clone github.com/RichardoC/kube-audit-rest cd kube-audit-rest go run github.com/ofabry/go-callvis@latest . root@d1d19aa8cd6b:/kube-audit-rest# go run github.com/ofabry/go-callvis@latest . panic: T goroutine 2499 [running]: golang.org/x/tools/go/types/typeutil.Hasher.hashFor({0xa308e0?}, {0xb8b320?, 0xc012da9c20?}) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/types/typeutil/map.go:302 +0x41f golang.org/x/tools/go/types/typeutil.Hasher.Hash({0xe91ec0?}, {0xb8b320, 0xc012da9c20}) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/types/typeutil/map.go:226 +0x65 golang.org/x/tools/go/types/typeutil.Hasher.hashFor({0xa308e0?}, {0xb8b258?, 0xc012ac7620?}) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/types/typeutil/map.go:269 +0x3f2 golang.org/x/tools/go/types/typeutil.Hasher.Hash({0xc01215cf01?}, {0xb8b258, 0xc012ac7620}) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/types/typeutil/map.go:226 +0x65 golang.org/x/tools/go/types/typeutil.Hasher.hashTuple({0xc00027bae8?}, 0xc012a91998) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/types/typeutil/map.go:310 +0x5f golang.org/x/tools/go/types/typeutil.Hasher.hashFor({0xa308e0?}, {0xb8b280?, 0xc012dbc840?}) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/types/typeutil/map.go:276 +0x10c golang.org/x/tools/go/types/typeutil.Hasher.Hash({0x2?}, {0xb8b280, 0xc012dbc840}) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/types/typeutil/map.go:226 +0x65 golang.org/x/tools/go/types/typeutil.(*Map).At(0xc0125d0058, {0xb8b280, 0xc012dbc840}) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/types/typeutil/map.go:88 +0x48 golang.org/x/tools/go/ssa.(*Program).needMethods(0xc0125d0000, {0xb8b280?, 0xc012dbc840?}, 0x0) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/ssa/methods.go:156 +0x66 golang.org/x/tools/go/ssa.(*Program).needMethodsOf(0xc0125d0000, {0xb8b280?, 0xc012dbc840?}) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/ssa/methods.go:145 +0x70 golang.org/x/tools/go/ssa.(*Package).build(0xc019364360) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/ssa/builder.go:2275 +0x111 sync.(*Once).doSlow(0xc0001b37b8?, 0x66bcde?) /usr/lib/go-1.18/src/sync/once.go:68 +0xc2 sync.(*Once).Do(...) /usr/lib/go-1.18/src/sync/once.go:59 golang.org/x/tools/go/ssa.(*Package).Build(...) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/ssa/builder.go:2263 golang.org/x/tools/go/ssa.(*Program).Build.func1(0x0?) /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/ssa/builder.go:2247 +0x4c created by golang.org/x/tools/go/ssa.(*Program).Build /root/go/pkg/mod/golang.org/x/tools@v0.0.0-20200305224536-de023d59a5d1/go/ssa/builder.go:2246 +0x19c exit status 2
go version go1.18.1 linux/amd64
Updating golang.org/x/tools to the latest version can solve this problem, but you need to compile it yourself.
This is a very cool project, but when I tried it on one of my side projects it failed with this obscure panic
Steps to reproduce exactly. Not all steps required but it's what I did
go version
go version go1.18.1 linux/amd64