CSI provisioner pods crash with invalid memory address or nil pointer dereference

Solution Verified - Updated -

Issue

  • CSI provisioner pods are often restarted. Example of affected cluster:
csi-cephfsplugin-provisioner-8995b9bfd-dlth8       6/6     Running   0          24d
csi-cephfsplugin-provisioner-8995b9bfd-g2jx8       6/6     Running   54         25d
csi-rbdplugin-provisioner-5784795949-6mdnk         6/6     Running   84         38d
csi-rbdplugin-provisioner-5784795949-zvvmt         6/6     Running   0          34d
  • The logs of the affected pods show the following error messages:
I0613 19:07:07.406975       1 csi-provisioner.go:121] Version: v2.0.4-0-g0b9348770
I0613 19:07:07.407098       1 csi-provisioner.go:135] Building kube configs for running in cluster...
I0613 19:07:07.422046       1 connection.go:153] Connecting to unix:///csi/csi-provisioner.sock
I0613 19:07:07.422704       1 common.go:111] Probing CSI driver for readiness
W0613 19:07:07.426181       1 metrics.go:333] metrics endpoint will not be started because `metrics-address` was not specified.
I0613 19:07:07.427758       1 csi-provisioner.go:210] CSI driver does not support PUBLISH_UNPUBLISH_VOLUME, not watching VolumeAttachments
I0613 19:07:07.429658       1 leaderelection.go:243] attempting to acquire leader lease  rook-ceph/rook-ceph-cephfs-csi-ceph-com...
I0613 19:07:07.440916       1 leaderelection.go:253] successfully acquired lease rook-ceph/rook-ceph-cephfs-csi-ceph-com
I0613 19:07:07.741463       1 controller.go:820] Starting provisioner controller rook-ceph.cephfs.csi.ceph.com_csi-cephfsplugin-provisioner-5c77db96f5-88l8f_e3d38e6f-d515-41e6-ac8c-9b71eded2132!
I0613 19:07:07.741521       1 clone_controller.go:66] Starting CloningProtection controller
I0613 19:07:07.741530       1 volume_store.go:97] Starting save volume queue
I0613 19:07:07.750406       1 clone_controller.go:84] Started CloningProtection controller
I0613 19:07:08.542567       1 controller.go:869] Started provisioner controller rook-ceph.cephfs.csi.ceph.com_csi-cephfsplugin-provisioner-5c77db96f5-88l8f_e3d38e6f-d515-41e6-ac8c-9b71eded2132!
E0613 20:22:07.723078       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 20:22:07.723099       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 20:37:08.033996       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 20:37:08.044631       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 20:52:08.036934       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 20:52:08.043814       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 20:52:08.045168       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 21:22:07.767930       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 21:22:08.063227       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 21:37:08.076996       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 21:37:08.088475       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 21:52:08.074251       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 22:07:08.093536       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 22:22:08.095421       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 22:52:07.852336       1 shared_informer.go:781] unrecognized notification: <nil>
E0613 23:37:07.884800       1 runtime.go:78] Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)
goroutine 60 [running]:
k8s.io/apimachinery/pkg/util/runtime.logPanic(0x16ad960, 0x24bace0)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:74 +0xa6
k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:48 +0x89
panic(0x16ad960, 0x24bace0)
    /home/travis/.gimme/versions/go1.15.linux.amd64/src/runtime/panic.go:969 +0x175
k8s.io/client-go/tools/cache.(*processorListener).run.func1()
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/client-go/tools/cache/shared_informer.go:774 +0x194
k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0xc000574760)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:155 +0x5f
k8s.io/apimachinery/pkg/util/wait.BackoffUntil(0xc000514f60, 0x1a7ee60, 0xc0004a0000, 0x167a201, 0xc00049e000)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:156 +0xad
k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc000574760, 0x3b9aca00, 0x0, 0x1, 0xc00049e000)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133 +0x98
k8s.io/apimachinery/pkg/util/wait.Until(...)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:90
k8s.io/client-go/tools/cache.(*processorListener).run(0xc000550900)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/client-go/tools/cache/shared_informer.go:771 +0x95
k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1(0xc0002b4a70, 0xc00056cea0)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:73 +0x51
created by k8s.io/apimachinery/pkg/util/wait.(*Group).Start
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:71 +0x65
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
    panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x136ce54]

goroutine 60 [running]:
k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:55 +0x10c
panic(0x16ad960, 0x24bace0)
    /home/travis/.gimme/versions/go1.15.linux.amd64/src/runtime/panic.go:969 +0x175
k8s.io/client-go/tools/cache.(*processorListener).run.func1()
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/client-go/tools/cache/shared_informer.go:774 +0x194
k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0xc000574760)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:155 +0x5f
k8s.io/apimachinery/pkg/util/wait.BackoffUntil(0xc000514f60, 0x1a7ee60, 0xc0004a0000, 0x167a201, 0xc00049e000)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:156 +0xad
k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc000574760, 0x3b9aca00, 0x0, 0x1, 0xc00049e000)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133 +0x98
k8s.io/apimachinery/pkg/util/wait.Until(...)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:90
k8s.io/client-go/tools/cache.(*processorListener).run(0xc000550900)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/client-go/tools/cache/shared_informer.go:771 +0x95
k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1(0xc0002b4a70, 0xc00056cea0)
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:73 +0x51
created by k8s.io/apimachinery/pkg/util/wait.(*Group).Start
    /home/travis/gopath/src/github.com/kubernetes-csi/external-provisioner/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:71 +0x65

Environment

  • Red Hat OpenShift Container Platform 4.8 and earlier.

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content