rancher / elemental-operator

The Elemental operator is responsible for managing the OS versions and maintaining a machine inventory to assist with edge or baremetal installations.
Apache License 2.0
40 stars 17 forks source link

Observed a panic in reconciler: assignment to entry in nil map #767

Closed kkaempf closed 2 months ago

kkaempf commented 2 months ago
I0619 07:50:01.746798       1 controller.go:115] "Observed a panic in reconciler: assignment to entry in nil map" controller="managedosversionchannel" controllerGroup="elemental.cattle.i │
│ panic: assignment to entry in nil map [recovered]                                                                                                                                          │
│     panic: assignment to entry in nil map                                                                                                                                                  │
│                                                                                                                                                                                            │
│ goroutine 235 [running]:                                                                                                                                                                   │
│ sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()                                                                                                     │
│     /home/abuild/rpmbuild/BUILD/elemental-operator-1.7.0+git20240618.2c3f177/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:116 +0x1e5                        │
│ panic({0x1dc9160?, 0x2409f90?})                                                                                                                                                            │
│     /usr/lib64/go/1.22/src/runtime/panic.go:770 +0x132                                                                                                                                     │
│ github.com/rancher/elemental-operator/controllers.(*ManagedOSVersionChannelReconciler).createManagedOSVersions(0xc0005f8a80, {0x242cfc0, 0xc000ccc060}, 0xc0004d6d80, {0xc0007dd000, 0xb5e │
│     /home/abuild/rpmbuild/BUILD/elemental-operator-1.7.0+git20240618.2c3f177/controllers/managedosversionchannel_controller.go:370 +0xf45                                                  │
│ github.com/rancher/elemental-operator/controllers.(*ManagedOSVersionChannelReconciler).handleSyncPod(0xc0005f8a80, {0x242cfc0, 0xc000ccc060}, 0xc0008cbb08, 0xc0004d6d80, 0x34630b8a000)   │
│     /home/abuild/rpmbuild/BUILD/elemental-operator-1.7.0+git20240618.2c3f177/controllers/managedosversionchannel_controller.go:254 +0x2f1                                                  │
│ github.com/rancher/elemental-operator/controllers.(*ManagedOSVersionChannelReconciler).reconcile(0xc0005f8a80, {0x242cfc0, 0xc000ccc060}, 0xc0004d6d80)                                    │
│     /home/abuild/rpmbuild/BUILD/elemental-operator-1.7.0+git20240618.2c3f177/controllers/managedosversionchannel_controller.go:225 +0x9e5                                                  │
│ github.com/rancher/elemental-operator/controllers.(*ManagedOSVersionChannelReconciler).Reconcile(0xc0005f8a80, {0x242cfc0, 0xc000ccc060}, {{{0xc000881280?, 0x0?}, {0xc00088cc00?, 0xc0009 │
│     /home/abuild/rpmbuild/BUILD/elemental-operator-1.7.0+git20240618.2c3f177/controllers/managedosversionchannel_controller.go:110 +0x228                                                  │
│ sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x24320c8?, {0x242cfc0?, 0xc000ccc060?}, {{{0xc000881280?, 0xb?}, {0xc00088cc00?, 0x0?}}})                  │
│     /home/abuild/rpmbuild/BUILD/elemental-operator-1.7.0+git20240618.2c3f177/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:119 +0xb7                         │
│ sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0000f8140, {0x242cff8, 0xc00067c0a0}, {0x1eb63e0, 0xc00065a0c0})                                  │
│     /home/abuild/rpmbuild/BUILD/elemental-operator-1.7.0+git20240618.2c3f177/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:316 +0x3bc                        │
│ sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0000f8140, {0x242cff8, 0xc00067c0a0})                                                          │
│     /home/abuild/rpmbuild/BUILD/elemental-operator-1.7.0+git20240618.2c3f177/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:266 +0x1be                        │
│ sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()                                                                                                       │
│     /home/abuild/rpmbuild/BUILD/elemental-operator-1.7.0+git20240618.2c3f177/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:227 +0x79                         │
│ created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 340                                                                               │
│     /home/abuild/rpmbuild/BUILD/elemental-operator-1.7.0+git20240618.2c3f177/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:223 +0x50c                        │
│ Stream closed EOF for cattle-elemental-system/elemental-operator-65b6bb8f66-7tdnp (elemental-operator)                                                                                     │
fgiudici commented 2 months ago

Seems this will happen with ManagedOSVersion resources around that have no annotations.