RamenDR / ramen

Apache License 2.0
70 stars 51 forks source link

drpc: don't use deepCopyInto as the drpc field isn't initialized #1451

Closed raghavendra-talur closed 3 weeks ago

nirs commented 3 weeks ago

@raghavendra-talur is this a fix for this?

024-06-10T20:17:33.035Z INFO    controller/controller.go:115    Observed a panic in reconciler: runtime error: invalid memory address or nil pointer dereference    {"controller": "drplacementcontrol", "controllerGroup": "ramendr.openshift.io", "controllerKind": "DRPlacementControl", "DRPlacementControl": {"name":"deployment-rbd-drpc","namespace":"ramen-ops"}, "namespace": "ramen-ops", "name": "deployment-rbd-drpc", "reconcileID": "aad7e578-f431-4e6f-92a5-1931310549df"}
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=0x0 pc=0x195f77c]

goroutine 298 [running]:
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()
    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:116 +0x1e5
panic({0x1b8d0e0?, 0x32fbce0?})
    /usr/local/go/src/runtime/panic.go:914 +0x21f
k8s.io/apimachinery/pkg/apis/meta/v1.(*Time).DeepCopyInto(...)
    /go/pkg/mod/k8s.io/apimachinery@v0.29.0/pkg/apis/meta/v1/time.go:39
github.com/ramendr/ramen/controllers.(*DRPlacementControlReconciler).updateResourceCondition(0xc000007ba0, {0x2394f60, 0xc0007e4750}, 0xc000af6700, {0x23acd98, 0xc0005bf500})
    /workspace/controllers/drplacementcontrol_controller.go:1876 +0x95c
github.com/ramendr/ramen/controllers.(*DRPlacementControlReconciler).updateDRPCStatus(0xc000007ba0, {0x2394f60, 0xc0007e4750}, 0xc000af6700, {0x23acd98, 0xc0005bf500}, {{0x23986b8?, 0xc0007e4780?}, 0x0?})
    /workspace/controllers/drplacementcontrol_controller.go:1766 +0xc5
github.com/ramendr/ramen/controllers.(*DRPCInstance).startProcessing(0xc000783440)
    /workspace/controllers/drplacementcontrol.go:81 +0xc9
github.com/ramendr/ramen/controllers.(*DRPlacementControlReconciler).reconcileDRPCInstance(0xc000007ba0, 0xc000783440, {{0x23986b8?, 0xc0007e4780?}, 0x2394f60?})
    /workspace/controllers/drplacementcontrol_controller.go:1034 +0x13e
github.com/ramendr/ramen/controllers.(*DRPlacementControlReconciler).Reconcile(0xc000007ba0, {0x2394f60, 0xc0007e4750}, {{{0xc000807d06, 0x9}, {0xc000608ab0, 0x13}}})
    /workspace/controllers/drplacementcontrol_controller.go:805 +0xdd5
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x23986b8?, {0x2394f60?, 0xc0007e4750?}, {{{0xc000807d06?, 0xb?}, {0xc000608ab0?, 0x0?}}})
    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:119 +0xb7
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0000f5900, {0x2394f98, 0xc00065d9f0}, {0x1c34560?, 0xc0005c13e0?})
    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:316 +0x3cc
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0000f5900, {0x2394f98, 0xc00065d9f0})
    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:266 +0x1c9
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()
    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:227 +0x79
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 71
    /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:223 +0x565