Skip to content

operator keep crashing Observed a panic in reconciler: runtime error: invalid memory address or nil pointer dereference #1881

@linux-wizard

Description

@linux-wizard

operator version: altinity-clickhouse-operator-0.25.4 and altinity-clickhouse-operator-0.25.5
Issue: It seems that updating resources labels outside of the operator may causes issues and elad to the operator in crash loopback.
Recovering from this state is very complicated

altinity-clickhouse-operator I1204 19:44:40.689400       1 util.go:50] StatefulSet.Labels ARE DIFFERENT:
altinity-clickhouse-operator added:
altinity-clickhouse-operator none
altinity-clickhouse-operator modified:
altinity-clickhouse-operator Diff start -------------------------
altinity-clickhouse-operator modified .labels items num: 1
altinity-clickhouse-operator diff item [0]:'["clickhouse-keeper.altinity.com/object-version"]' = '"def6c294836ddef5341f2caea808cdd6e99b3b0b"'
altinity-clickhouse-operator Diff end -------------------------
altinity-clickhouse-operator
altinity-clickhouse-operator removed:
altinity-clickhouse-operator Diff start -------------------------
altinity-clickhouse-operator removed .labels items num: 6
altinity-clickhouse-operator diff item [0]:'["neozo.cloud/category"]' = '"inventory"'
altinity-clickhouse-operator diff item [1]:'["dip2/inventory.0"]' = '"dip2-uat-gold-ao-analytics"'
altinity-clickhouse-operator diff item [2]:'["dip2/inventory.1"]' = '"dip2-uat-gold-ao-international-bi"'
altinity-clickhouse-operator diff item [3]:'["dip2/inventory"]' = '"shared-inventories-dip2-uat"'
altinity-clickhouse-operator diff item [4]:'["dip2/db.engine"]' = '"clickhouse"'
altinity-clickhouse-operator diff item [5]:'["dip2/tenant"]' = '"dip2-uat"'
altinity-clickhouse-operator Diff end -------------------------
altinity-clickhouse-operator I1204 19:44:40.689425       1 util.go:59] Host:0-1[0/1]:shared-inventories-dip2-uat/shared-inventories-dip2-uat:StatefulSet.Annotations ARE EQUAL
altinity-clickhouse-operator I1204 19:44:40.689490       1 statefulset-reconciler.go:460] doDeleteStatefulSet():Host:0-1[0/1]:shared-inventories-dip2-uat/shared-inventories-dip2-uat:shared-inventories-dip2-uat/chk-shared-inventories-dip2-uat-r3-
altinity-clickhouse-operator I1204 19:44:40.735578       1 poller.go:80] Poll():shared-inventories-dip2-uat/0-0:OK shared-inventories-dip2-uat/0-0
altinity-clickhouse-operator I1204 19:44:40.748901       1 poller.go:80] Poll():shared-inventories-dip2-uat/0-0:OK shared-inventories-dip2-uat/0-0
altinity-clickhouse-operator I1204 19:44:40.789994       1 panic.go:783] worker-reconciler-chk.go:343:reconcileHostStatefulSet():end:Host:0-1[0/1]:shared-inventories-dip2-uat/shared-inventories-dip2-uat:reconcile StatefulSet end
altinity-clickhouse-operator I1204 19:44:40.790012       1 panic.go:783] worker-reconciler-chk.go:466:reconcileShardsAndHosts():end:reconcileShardsAndHosts end
altinity-clickhouse-operator I1204 19:44:40.790028       1 panic.go:783] worker-reconciler-chk.go:51:reconcileCR():end:unknown
altinity-clickhouse-operator 2025-12-04T19:44:40Z    INFO    Observed a panic in reconciler: runtime error: invalid memory address or nil pointer dereference    {"controller": "clickhousekeeperinstallation", "controllerGroup": "clickhouse-keeper
altinity-clickhouse-operator panic: runtime error: invalid memory address or nil pointer dereference [recovered, repanicked]
altinity-clickhouse-operator [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x1813a7e]
altinity-clickhouse-operator

Full Stack Trace:

altinity-clickhouse-operator goroutine 209 [running]:
altinity-clickhouse-operator sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()
altinity-clickhouse-operator     /clickhouse-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:115 +0x1d4
altinity-clickhouse-operator panic({0x1c3a0e0?, 0x322f390?})
altinity-clickhouse-operator     /usr/local/go/src/runtime/panic.go:783 +0x132
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/common/poller/domain.(*HostObjectsPoller).WaitHostStatefulSetReady.func1({0x22352d0?, 0x32896a0?}, 0xc00557ea08)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/common/poller/domain/poller-host-objects.go:98 +0x3e
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/common/poller/domain.(*HostObjectPoller[...]).Poll.func2({0x1efbc80?, 0xc00557ea08?})
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/common/poller/domain/poller-host-object.go:62 +0x3b
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/common/poller.(*Functions).CallIsDone(...)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/common/poller/poller-functions.go:46
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/common/poller.(*poller).Poll(0xc0078a4c78)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/common/poller/poller.go:78 +0x423
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/common/poller/domain.(*HostObjectPoller[...]).Poll(0x221c340, {0x22352d0, 0x32896a0}, 0xc0017f0000, 0xc005577638, {0x0, 0x0, 0x0})
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/common/poller/domain/poller-host-object.go:72 +0x405
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/common/poller/domain.(*HostObjectsPoller).WaitHostStatefulSetReady(0xc0025cc760, {0x22352d0, 0x32896a0}, 0xc0017f0000)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/common/poller/domain/poller-host-objects.go:91 +0x1b2
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/common/statefulset.(*Reconciler).doDeleteStatefulSet(0xc0025990e0, {0x22352d0, 0x32896a0}, 0xc0017f0000)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/common/statefulset/statefulset-reconciler.go:484 +0x8c9
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/common/statefulset.(*Reconciler).recreateStatefulSet(0xc0025990e0, {0x22352d0, 0x32896a0}, 0xc0017f0000, 0x1, 0x0)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/common/statefulset/statefulset-reconciler.go:197 +0x73f
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/common/statefulset.(*Reconciler).updateStatefulSet(0xc0025990e0, {0x22352d0, 0x32896a0}, 0xc0017f0000, 0x1, 0x0)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/common/statefulset/statefulset-reconciler.go:288 +0x1806
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/common/statefulset.(*Reconciler).ReconcileStatefulSet(0xc0025990e0, {0x22352d0, 0x32896a0}, 0xc0017f0000, 0x1, 0x0)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/common/statefulset/statefulset-reconciler.go:173 +0xed7
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/chk.(*worker).reconcileHostStatefulSet(0xc00099a2d0, {0x22352d0, 0x32896a0}, 0xc0017f0000, 0x0)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/chk/worker-reconciler-chk.go:364 +0xe4d
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/chk.(*worker).reconcileHostMain(0xc00099a2d0, {0x22352d0, 0x32896a0}, 0xc0017f0000)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/chk/worker-reconciler-chk.go:673 +0xcac
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/chk.(*worker).reconcileHost(0xc00099a2d0, {0x22352d0, 0x32896a0}, 0xc0017f0000)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/chk/worker-reconciler-chk.go:579 +0x833
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/chk.(*worker).reconcileShardWithHosts.func1(0x41d3c5?)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/chk/worker-reconciler-chk.go:535 +0x25
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/apis/clickhouse-keeper.altinity.com/v1.(*ChkShard).WalkHostsAbortOnError(0xc00036b980, 0xc00768be60)
altinity-clickhouse-operator     /clickhouse-operator/pkg/apis/clickhouse-keeper.altinity.com/v1/type_shard.go:124 +0x72
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/chk.(*worker).reconcileShardWithHosts(0xc00099a2d0, {0x22352d0, 0x32896a0}, {0x2249378, 0xc00036b980})
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/chk/worker-reconciler-chk.go:534 +0xa2
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/chk.(*worker).reconcileShardsAndHosts(0xc00099a2d0, {0x22352d0, 0x32896a0}, {0xc0076ba340, 0x1, 0x1})
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/chk/worker-reconciler-chk.go:481 +0x5fa
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/apis/clickhouse-keeper.altinity.com/v1.(*ClickHouseKeeperInstallation).WalkTillError(0xc001c71500, {0x22352d0, 0x32896a0}, 0x0?, 0xc0078a73e8, 0xc0078a73d8, 0xc0078a73c8)
altinity-clickhouse-operator     /clickhouse-operator/pkg/apis/clickhouse-keeper.altinity.com/v1/type_chk.go:671 +0x15f
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/chk.(*worker).reconcile(0xc00099a2d0, {0x22352d0, 0x32896a0}, 0xc001c71500)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/chk/worker-reconciler-chk.go:180 +0xbe5
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/chk.(*worker).reconcileCR(0xc00099a2d0, {0x22352d0, 0x32896a0}, 0x0?, 0xc000ae8000)
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/chk/worker-reconciler-chk.go:69 +0x8b1
altinity-clickhouse-operator github.com/altinity/clickhouse-operator/pkg/controller/chk.(*Controller).Reconcile(0xc0001a1900, {0x22351f0, 0xc00059f140}, {{{0xc000c8dc40?, 0x1de12a0?}, {0xc000c8dfe0?, 0xc000cb11f0?}}})
altinity-clickhouse-operator     /clickhouse-operator/pkg/controller/chk/controller.go:80 +0x3c5
altinity-clickhouse-operator sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x22351f0?, {0x22351f0?, 0xc00059f140?}, {{{0xc000c8dc40?, 0x1b15b60?}, {0xc000c8dfe0?, 0x0?}}})
altinity-clickhouse-operator     /clickhouse-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:118 +0xa5
altinity-clickhouse-operator sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc00033bc20, {0x2235228, 0xc0002014f0}, {0x1d4b820, 0xc000d7c0a0})
altinity-clickhouse-operator     /clickhouse-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:314 +0x31c
altinity-clickhouse-operator sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc00033bc20, {0x2235228, 0xc0002014f0})
altinity-clickhouse-operator     /clickhouse-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:265 +0x197
altinity-clickhouse-operator sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()
altinity-clickhouse-operator     /clickhouse-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:226 +0x73
altinity-clickhouse-operator created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 125
altinity-clickhouse-operator     /clickhouse-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:222 +0x509
Stream closed EOF for clickhouse-operator/clickhouse-operator-5769f56c47-mbj5w (altinity-clickhouse-operator)

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