From ec242d5ee7ec972743246d5bea9ea6f2e6404a28 Mon Sep 17 00:00:00 2001 From: parth-gr Date: Tue, 11 Nov 2025 18:39:01 +0530 Subject: [PATCH] pool: fix pool status check in rn controller if the pool is just created and getting the status updated rn controller can still go and proceed to check the pool status which result in panic and later it stop re-trying because of panic get swallowed https://github.com/rook/rook/commit/cf13deee6f0aaa1ff854d57493bf91df70f8f436 Signed-off-by: parth-gr --- pkg/operator/ceph/pool/radosnamespace/controller.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/operator/ceph/pool/radosnamespace/controller.go b/pkg/operator/ceph/pool/radosnamespace/controller.go index 3765f846b..4a2c93d94 100644 --- a/pkg/operator/ceph/pool/radosnamespace/controller.go +++ b/pkg/operator/ceph/pool/radosnamespace/controller.go @@ -323,9 +323,11 @@ func (r *ReconcileCephBlockPoolRadosNamespace) reconcile(request reconcile.Reque } // If the cephBlockPool is not ready to accept commands, we should wait for it to be ready - if cephBlockPool.Status.Phase != cephv1.ConditionReady { - // We know the CR is present so it should a matter of second for it to become ready - return reconcile.Result{Requeue: true, RequeueAfter: 10 * time.Second}, radosNamespace, errors.Wrapf(err, "failed to fetch ceph blockpool %q, cannot create rados namespace %q", pool, radosNamespace.Name) + if cephBlockPool.Status != nil { + if cephBlockPool.Status.Phase != cephv1.ConditionReady { + // We know the CR is present so it should a matter of second for it to become ready + return reconcile.Result{Requeue: true, RequeueAfter: 10 * time.Second}, radosNamespace, errors.Wrapf(err, "failed to fetch ceph blockpool %q, cannot create rados namespace %q", pool, radosNamespace.Name) + } } // Create or Update rados namespace err = r.createOrUpdateRadosNamespace(radosNamespace)