otterize / network-mapper

Map Kubernetes traffic: in-cluster, to the Internet, and to AWS IAM and export as text, intents, or an image
Apache License 2.0
612 stars 23 forks source link

Network-mapper crash - invalid memory address or nil pointer dereference #130

Closed Moran-k closed 1 year ago

Moran-k commented 1 year ago

Hi Otterize,

Crash report

What did we do Install network-mapper on a Kubernetes cluster version 1.27.3 Environment: EKS Network-mapper image version: v0.1.27

Expected Network-mapper pod is up and running

Actual Network-mapper pod in a crash loop.

[ 2023-08-24T08:20:43.031 ]:    /src/mapper/cmd/main.go:58 +0x118
[ 2023-08-24T08:20:43.031 ]: main.main()
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/manager/manager.go:351 +0xf9
[ 2023-08-24T08:20:43.031 ]: sigs.k8s.io/controller-runtime/pkg/manager.New(_, {0x0, 0x0, 0x0, {{0x1b50210, 0xc000408c00}, 0x0}, 0x0, {0x0, 0x0}, ...})
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/cluster/cluster.go:159 +0x18d
[ 2023-08-24T08:20:43.031 ]: sigs.k8s.io/controller-runtime/pkg/cluster.New(0xc000207440, {0xc0000c3b28, 0x1, 0x0?})
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/cluster/cluster.go:217 +0x25
[ 2023-08-24T08:20:43.031 ]: sigs.k8s.io/controller-runtime/pkg/cluster.setOptionsDefaults.func1(0x0?)
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/client/apiutil/dynamicrestmapper.go:110 +0x182
[ 2023-08-24T08:20:43.031 ]: sigs.k8s.io/controller-runtime/pkg/client/apiutil.NewDynamicRESTMapper(0xc0004983f0?, {0x0, 0x0, 0x24ff0a13d815e301?})
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/client/apiutil/dynamicrestmapper.go:130
[ 2023-08-24T08:20:43.031 ]: sigs.k8s.io/controller-runtime/pkg/client/apiutil.(*dynamicRESTMapper).setStaticMapper(...)
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/client/apiutil/dynamicrestmapper.go:94 +0x25
[ 2023-08-24T08:20:43.031 ]: sigs.k8s.io/controller-runtime/pkg/client/apiutil.NewDynamicRESTMapper.func1()
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/k8s.io/client-go@v0.26.2/restmapper/discovery.go:148 +0x42
[ 2023-08-24T08:20:43.031 ]: k8s.io/client-go/restmapper.GetAPIGroupResources({0x1b53768?, 0xc00034e8a0?})
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/k8s.io/client-go@v0.26.2/discovery/discovery_client.go:355 +0x3a
[ 2023-08-24T08:20:43.031 ]: k8s.io/client-go/discovery.(*DiscoveryClient).ServerGroupsAndResources(0x0?)
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/k8s.io/client-go@v0.26.2/discovery/discovery_client.go:621 +0x72
[ 2023-08-24T08:20:43.031 ]: k8s.io/client-go/discovery.withRetries(0x2, 0xc0000bf180)
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/k8s.io/client-go@v0.26.2/discovery/discovery_client.go:356 +0x25
[ 2023-08-24T08:20:43.031 ]: k8s.io/client-go/discovery.(*DiscoveryClient).ServerGroupsAndResources.func1()
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/k8s.io/client-go@v0.26.2/discovery/discovery_client.go:392 +0x59
[ 2023-08-24T08:20:43.031 ]: k8s.io/client-go/discovery.ServerGroupsAndResources({0x1b53768, 0xc00034e8a0})
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/k8s.io/client-go@v0.26.2/discovery/discovery_client.go:198 +0x5c
[ 2023-08-24T08:20:43.031 ]: k8s.io/client-go/discovery.(*DiscoveryClient).GroupsAndMaybeResources(0xc00040a1e0?)
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/k8s.io/client-go@v0.26.2/discovery/discovery_client.go:310 +0x47c
[ 2023-08-24T08:20:43.031 ]: k8s.io/client-go/discovery.(*DiscoveryClient).downloadAPIs(0x1b2fdf0?)
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/k8s.io/client-go@v0.26.2/discovery/aggregated_discovery.go:35 +0x2f8
[ 2023-08-24T08:20:43.031 ]: k8s.io/client-go/discovery.SplitGroupsAndResources({{{0xc000596228, 0x15}, {0xc0000482a0, 0x1b}}, {{0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, ...}, ...})
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/k8s.io/client-go@v0.26.2/discovery/aggregated_discovery.go:69 +0x5f0
[ 2023-08-24T08:20:43.031 ]: k8s.io/client-go/discovery.convertAPIGroup({{{0x0, 0x0}, {0x0, 0x0}}, {{0xc000597878, 0x15}, {0x0, 0x0}, {0x0, 0x0}, ...}, ...})
[ 2023-08-24T08:20:43.031 ]:    /go/pkg/mod/k8s.io/client-go@v0.26.2/discovery/aggregated_discovery.go:88
[ 2023-08-24T08:20:43.031 ]: k8s.io/client-go/discovery.convertAPIResource(...)
[ 2023-08-24T08:20:43.031 ]: goroutine 1 [running]:
[ 2023-08-24T08:20:43.031 ]: 
[ 2023-08-24T08:20:43.031 ]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1300c10]
[ 2023-08-24T08:20:43.031 ]: panic: runtime error: invalid memory address or nil pointer dereference

Additional information

According to the stack trace and online research, it appears that the problem has been resolved in version 0.26.5 of k8s.io/client-go. Github issue

evyatarmeged commented 1 year ago

Hey @Moran-k, We've released a fix for this in mapper version v0.1.29. Can you please try it and let us know if it solves the issue ?

Moran-k commented 1 year ago

Thanks, The problem has been solved by employing network-mapper version v0.1.29.