Skip to content

RHACM CRDs left behind after deleting the ACM operator cause a panic in cert-manager #141

@rbmateescu

Description

@rbmateescu

I had RHACM ACM installed in my OCP cluster and after a while I deleted the multiclusterhub and the ACM operator. All RHACM CRDs were left behind .

cert-manager is now crashing , logging a panic like this :

{"level":"info","ts":1629120252.4404705,"logger":"controller-runtime.controller","msg":"Starting Controller","controller":"certmanager-controller"}
I0816 13:24:14.843192       1 trace.go:116] Trace[1458323237]: "Reflector ListAndWatch" name:pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:96 (started: 2021-08-16 13:24:02.594366184 +0000 UTC m=+68.246585093) (total time: 12.24858301s):
Trace[1458323237]: [12.246642649s] [12.246642649s] Objects listed
{"level":"info","ts":1629120254.9407926,"logger":"controller-runtime.controller","msg":"Starting workers","controller":"certmanager-controller","worker count":1}
{"level":"info","ts":1629120254.940956,"logger":"controller_certmanager","msg":"Reconciling CertManager","Request.Namespace":"","Request.Name":"default"}
{"level":"info","ts":1629120254.9410067,"logger":"controller_certmanager","msg":"The namespace","ns":"ibm-common-services"}
{"level":"debug","ts":1629120254.9412458,"logger":"controller-runtime.manager.events","msg":"Normal","object":{"kind":"CertManager","name":"default","uid":"ac691bdd-66f5-47e7-bd1c-2da6101e26c3","apiVersion":"operator.ibm.com/v1alpha1","resourceVersion":"464281930"},"reason":"Initializing","message":"Instance found"}
E0816 13:24:14.946034       1 runtime.go:78] Observed a panic: runtime.boundsError{x:0, y:0, signed:true, code:0x0} (runtime error: index out of range [0] with length 0)
goroutine 5255 [running]:
k8s.io/apimachinery/pkg/util/runtime.logPanic(0x15d5700, 0xc001fd83d8)
	/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:74 +0xa6
k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0)
	/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:48 +0x86
panic(0x15d5700, 0xc001fd83d8)
	/usr/local/go/src/runtime/panic.go:965 +0x1b9
github.com/ibm/ibm-cert-manager-operator/pkg/controller/certmanager.checkRhacm(0x1948290, 0xc00070c840, 0xc003b9a000, 0x16a555d, 0x6, 0x16aa126, 0xc, 0x16abf71)
	/home/prow/go/src/github.com/IBM/ibm-cert-manager-operator/pkg/controller/certmanager/prereqs.go:220 +0x4bf
github.com/ibm/ibm-cert-manager-operator/pkg/controller/certmanager.(*ReconcileCertManager).Reconcile(0xc0002fb740, 0x0, 0x0, 0xc001138c14, 0x7, 0x12c3b90dc0, 0xc000714990, 0xc0003086c8, 0xc0003086c0)
	/home/prow/go/src/github.com/IBM/ibm-cert-manager-operator/pkg/controller/certmanager/certmanager_controller.go:252 +0x765
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0007692c0, 0x1557be0, 0xc0006aa9c0, 0xffffffffffffff00)
	/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:256 +0x166
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0007692c0, 0xc00132e100)
	/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:232 +0xb0
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker(...)
	/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:211
k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1(0xc00293ffa0)
	/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:152 +0x5f
k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc00293ffa0, 0x3b9aca00, 0x0, 0x1, 0xc0000aa2a0)
	/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:153 +0x105
k8s.io/apimachinery/pkg/util/wait.Until(0xc00293ffa0, 0x3b9aca00, 0xc0000aa2a0)
	/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:88 +0x4d
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1
	/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:193 +0x32d
panic: runtime error: index out of range [0] with length 0 [recovered]
	panic: runtime error: index out of range [0] with length 0

Removing the RHACM CRDs fixed the problem . The following error message is logged, but the pod is not crashing anymore :

{"level":"error","ts":1629121282.84336,"logger":"controller_certmanager","msg":"Error trying to check for RHACM","error":"no matches for kind \"MultiClusterHub\" in version \"operator.open-cluster-management.io/v1\"","stacktrace":"github.com/go-logr/zapr.(*zapLogger).Error\n\t/home/prow/go/pkg/mod/github.com/go-logr/[email protected]/zapr.go:128\ngithub.com/ibm/ibm-cert-manager-operator/pkg/controller/certmanager.(*ReconcileCertManager).Reconcile\n\t/home/prow/go/src/github.com/IBM/ibm-cert-manager-operator/pkg/controller/certmanager/certmanager_controller.go:256\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:256\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:232\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker\n\t/home/prow/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:211\nk8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:152\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:153\nk8s.io/apimachinery/pkg/util/wait.Until\n\t/home/prow/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:88"}
{"level":"info","ts":1629121282.8435316,"logger":"controller_certmanager","msg":"RHACM does not exist"}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions