Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-69656

Deleting secondaryControlPlaneLoadBalancer in awscluster get panic

XMLWordPrintable

    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • Moderate
    • Yes
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Description of problem:

          Deleting secondaryControlPlaneLoadBalancer in awscluster get panic
      
      liuhuali@Lius-MacBook-Pro huali-test % oc edit awscluster 
      error: awsclusters.infrastructure.cluster.x-k8s.io "huliu-aws1217a-thqm7" could not be patched: admission webhook "validation.awscluster.infrastructure.cluster.x-k8s.io" denied the request: panic: runtime error: invalid memory address or nil pointer dereference [recovered]
      You can run `oc replace -f /var/folders/yc/y9zy01jn3f51r9knbpsm_55r0000gn/T/oc-edit-797326194.yaml` to try this update again.
      liuhuali@Lius-MacBook-Pro huali-test % 
      
      I've tested it before, the secondaryControlPlaneLoadBalancer can be deleted without panic

      Version-Release number of selected component (if applicable):

          4.22.0-0.nightly-2025-12-16-225527

      How reproducible:

          always

      Steps to Reproduce:

          1.Edit awscluster deleting secondaryControlPlaneLoadBalancer part
      
      liuhuali@Lius-MacBook-Pro huali-test % oc edit awscluster 
      error: awsclusters.infrastructure.cluster.x-k8s.io "huliu-aws1217a-thqm7" could not be patched: admission webhook "validation.awscluster.infrastructure.cluster.x-k8s.io" denied the request: panic: runtime error: invalid memory address or nil pointer dereference [recovered]
      You can run `oc replace -f /var/folders/yc/y9zy01jn3f51r9knbpsm_55r0000gn/T/oc-edit-797326194.yaml` to try this update again.
      
      liuhuali@Lius-MacBook-Pro huali-test % oc logs capa-controller-manager-7ccbd765d7-lhgbh
      ...
      E1217 08:45:24.852777       1 runtime.go:142] "Observed a panic" logger="admission" webhookGroup="infrastructure.cluster.x-k8s.io" webhookKind="AWSCluster" AWSCluster="openshift-cluster-api/huliu-aws1217a-thqm7" namespace="openshift-cluster-api" name="huliu-aws1217a-thqm7" resource={"group":"infrastructure.cluster.x-k8s.io","version":"v1beta2","resource":"awsclusters"} user="system:admin" requestID="741c5377-3721-4505-9ddc-c62cc2ccf2b8" panic="runtime error: invalid memory address or nil pointer dereference" panicGoValue="\"invalid memory address or nil pointer dereference\"" stacktrace=<
      	goroutine 17137 [running]:
      	k8s.io/apimachinery/pkg/util/runtime.logPanic({0x65f0eb8, 0xc00245e090}, {0x5517320, 0x8c693a0})
      		/build/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:132 +0xbc
      	sigs.k8s.io/controller-runtime/pkg/webhook/admission.(*Webhook).Handle.func1()
      		/build/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/webhook.go:163 +0xf8
      	panic({0x5517320?, 0x8c693a0?})
      		/usr/lib/golang/src/runtime/panic.go:792 +0x132
      	sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2.(*AWSCluster).validateControlPlaneLoadBalancerUpdate(0x56bed60?, 0xc002203d60, 0x0)
      		/build/api/v1beta2/awscluster_webhook.go:207 +0xce
      	sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2.(*awsClusterWebhook).ValidateUpdate(0xc001552e80?, {0xc00228e580?, 0xc31?}, {0x6594598, 0xc00023fb88}, {0x6594598?, 0xc0014c5708?})
      		/build/api/v1beta2/awscluster_webhook.go:130 +0x73e
      	sigs.k8s.io/controller-runtime/pkg/webhook/admission.(*validatorForType).Handle(_, {_, _}, {{{0xc001ac7e30, 0x24}, {{0xc0022e7480, 0x1f}, {0xc00251bfb8, 0x7}, {0xc00251bfe0, ...}}, ...}})
      		/build/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/validator_custom.go:104 +0x802
      	sigs.k8s.io/controller-runtime/pkg/webhook/admission.(*Webhook).Handle(_, {_, _}, {{{0xc001ac7e30, 0x24}, {{0xc0022e7480, 0x1f}, {0xc00251bfb8, 0x7}, {0xc00251bfe0, ...}}, ...}})
      		/build/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/webhook.go:181 +0x224
      	sigs.k8s.io/controller-runtime/pkg/webhook/admission.(*Webhook).ServeHTTP(0xc000358730, {0x7fd2dce14a38, 0xc0001700a0}, 0xc00258a640)
      		/build/vendor/sigs.k8s.io/controller-runtime/pkg/webhook/admission/http.go:119 +0xaf0
      	sigs.k8s.io/controller-runtime/pkg/webhook/internal/metrics.InstrumentedHook.InstrumentHandlerInFlight.func1({0x7fd2dce14a38, 0xc0001700a0}, 0xc00258a640)
      		/build/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go:60 +0xb6
      	net/http.HandlerFunc.ServeHTTP(0x8d85b50?, {0x7fd2dce14a38?, 0xc0001700a0?}, 0x6228a6?)
      		/usr/lib/golang/src/net/http/server.go:2294 +0x29
      	github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerCounter.func1({0x65dda88?, 0xc002280460?}, 0xc00258a640)
      		/build/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go:147 +0xc3
      	net/http.HandlerFunc.ServeHTTP(0x5a7d2e0?, {0x65dda88?, 0xc002280460?}, 0xc0022b3a20?)
      		/usr/lib/golang/src/net/http/server.go:2294 +0x29
      	github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerDuration.func2({0x65dda88, 0xc002280460}, 0xc00258a640)
      		/build/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go:109 +0xc5
      	net/http.HandlerFunc.ServeHTTP(0xc000460a80?, {0x65dda88?, 0xc002280460?}, 0xc0022b3b60?)
      		/usr/lib/golang/src/net/http/server.go:2294 +0x29
      	net/http.(*ServeMux).ServeHTTP(0x41bf25?, {0x65dda88, 0xc002280460}, 0xc00258a640)
      		/usr/lib/golang/src/net/http/server.go:2822 +0x1c4
      	net/http.serverHandler.ServeHTTP({0x65934e8?}, {0x65dda88?, 0xc002280460?}, 0x1?)
      		/usr/lib/golang/src/net/http/server.go:3301 +0x8e
      	net/http.(*conn).serve(0xc0015bbc20, {0x65f0eb8, 0xc00159c390})
      		/usr/lib/golang/src/net/http/server.go:2102 +0x625
      	created by net/http.(*Server).Serve in goroutine 93
      		/usr/lib/golang/src/net/http/server.go:3454 +0x485
       >
      
      
          

      Actual results:

          Deleting secondaryControlPlaneLoadBalancer in awscluster get panic

      Expected results:

          should not panic

      Additional info:

          must-gather: https://drive.google.com/file/d/1-aaOVUQRNj20G8L_1aaS7VmoliCuqwLn/view?usp=sharing

              rh-ee-nbrubake Nolan Brubaker
              huliu@redhat.com Huali Liu
              None
              None
              Huali Liu Huali Liu
              None
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: