keycloak / keycloak-operator

ARCHIVED Kubernetes Operator for the no longer supported WildFly distribution of Keycloak
Apache License 2.0
432 stars 280 forks source link

Crash loop on startup #514

Closed matthenslee closed 2 years ago

matthenslee commented 2 years ago

Describe the bug

Hello!

We are using keycloak-operator on our cluster with Kubernetes 1.21 (RKE2 v1.21.10+rke2r1). When the operator starts, we receive a seemingly infinite CrashLoopBackoff with the error below. Each time a crash occurs it occurs after the state of a keycloak CRD object is read. Has anyone encountered a similar error?

`E0324 20:56:52.762318 1 runtime.go:78] Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference) goroutine 3508 [running]: k8s.io/apimachinery/pkg/util/runtime.logPanic(0x16dd3c0, 0x277e1d0) /src/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:74 +0xa3 k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0) /src/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:48 +0x82 panic(0x16dd3c0, 0x277e1d0) /usr/local/go/src/runtime/panic.go:679 +0x1b2 github.com/keycloak/keycloak-operator/pkg/common.(ClientState).readDefaultRoles(0xc000f90cf0, 0xc000c8c780, 0x1b9efe0, 0xc000dae7e0, 0x0, 0x0) /src/pkg/common/client_state.go:132 +0x86 github.com/keycloak/keycloak-operator/pkg/common.(ClientState).Read(0xc000f90cf0, 0x1b53460, 0xc000b3cfc0, 0xc000c8c780, 0x1b9efe0, 0xc000dae7e0, 0x1b70460, 0xc0006d2f30, 0x0, 0xc000c6cd80) /src/pkg/common/client_state.go:79 +0x2cb github.com/keycloak/keycloak-operator/pkg/controller/keycloakclient.(ReconcileKeycloakClient).Reconcile(0xc000b3d040, 0xc000a88560, 0x8, 0xc00079e820, 0x1d, 0xc0007f1cb0, 0xc000cec630, 0xc000cec098, 0x1b241c0) /src/pkg/controller/keycloakclient/keycloakclient_controller.go:148 +0xc09 sigs.k8s.io/controller-runtime/pkg/internal/controller.(Controller).reconcileHandler(0xc00024c180, 0x173eaa0, 0xc000dd6060, 0xc000b1a400) /src/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:256 +0x162 sigs.k8s.io/controller-runtime/pkg/internal/controller.(Controller).processNextWorkItem(0xc00024c180, 0x199f200) /src/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:232 +0xcb sigs.k8s.io/controller-runtime/pkg/internal/controller.(Controller).worker(0xc00024c180) /src/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:211 +0x2b k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0xc00039f810) /src/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:155 +0x5e k8s.io/apimachinery/pkg/util/wait.BackoffUntil(0xc00039f810, 0x1b12ee0, 0xc0005173e0, 0x1, 0xc000724180) /src/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:156 +0xa3 k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc00039f810, 0x3b9aca00, 0x0, 0x1, 0xc000724180) /src/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133 +0xaa k8s.io/apimachinery/pkg/util/wait.Until(0xc00039f810, 0x3b9aca00, 0xc000724180) /src/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:90 +0x4d created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1 /src/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:193 +0x328 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=0x40 pc=0x14b3306]

goroutine 3508 [running]: k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0) /src/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:55 +0x105 panic(0x16dd3c0, 0x277e1d0) /usr/local/go/src/runtime/panic.go:679 +0x1b2 github.com/keycloak/keycloak-operator/pkg/common.(ClientState).readDefaultRoles(0xc000f90cf0, 0xc000c8c780, 0x1b9efe0, 0xc000dae7e0, 0x0, 0x0) /src/pkg/common/client_state.go:132 +0x86 github.com/keycloak/keycloak-operator/pkg/common.(ClientState).Read(0xc000f90cf0, 0x1b53460, 0xc000b3cfc0, 0xc000c8c780, 0x1b9efe0, 0xc000dae7e0, 0x1b70460, 0xc0006d2f30, 0x0, 0xc000c6cd80) /src/pkg/common/client_state.go:79 +0x2cb github.com/keycloak/keycloak-operator/pkg/controller/keycloakclient.(ReconcileKeycloakClient).Reconcile(0xc000b3d040, 0xc000a88560, 0x8, 0xc00079e820, 0x1d, 0xc0007f1cb0, 0xc000cec630, 0xc000cec098, 0x1b241c0) /src/pkg/controller/keycloakclient/keycloakclient_controller.go:148 +0xc09 sigs.k8s.io/controller-runtime/pkg/internal/controller.(Controller).reconcileHandler(0xc00024c180, 0x173eaa0, 0xc000dd6060, 0xc000b1a400) /src/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:256 +0x162 sigs.k8s.io/controller-runtime/pkg/internal/controller.(Controller).processNextWorkItem(0xc00024c180, 0x199f200) /src/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:232 +0xcb sigs.k8s.io/controller-runtime/pkg/internal/controller.(Controller).worker(0xc00024c180) /src/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:211 +0x2b k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1(0xc00039f810) /src/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:155 +0x5e k8s.io/apimachinery/pkg/util/wait.BackoffUntil(0xc00039f810, 0x1b12ee0, 0xc0005173e0, 0x1, 0xc000724180) /src/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:156 +0xa3 k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc00039f810, 0x3b9aca00, 0x0, 0x1, 0xc000724180) /src/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133 +0xaa k8s.io/apimachinery/pkg/util/wait.Until(0xc00039f810, 0x3b9aca00, 0xc000724180) /src/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:90 +0x4d created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1 /src/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:193 +0x328 `

Version

10.0.2

Expected behavior

Healthy Pod, Keycloak CRDs processed as written

Actual behavior

Pod in Unhealthy Crashloop State, Realms are not created, Users are not created, etc.

How to Reproduce?

When bootstrapping our cluster, we install Keycloak via keycloak-operator via Helm chart with values modified for our environment. This error occurs shortly after the container initializes.

Anything else?

No response

vmuzikar commented 2 years ago

@matthenslee Thank you for reporting this. Could you please try reproducing this with the latest version? 10.0.2 is quite old. Please note that we do not support installing the operator via Helm charts.

vmuzikar commented 2 years ago

Closing this for now as we're unable to reproduce it. Feel free to re-open if still valid. Thank you.