kubernetes-sigs / cluster-api-provider-openstack

Cluster API implementation for OpenStack
https://cluster-api-openstack.sigs.k8s.io/
Apache License 2.0
275 stars 253 forks source link

CAPO controller manager panics while creating port #2063

Closed kashifest closed 1 month ago

kashifest commented 2 months ago

/kind bug

Hi, we are seeing a invalid memory address or nil pointer dereference while creating a port in openstack with v0.10.1 release

Here is the stack trace

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=0x20 pc=0x1b74415]

goroutine 359 [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({0x1db56a0?, 0x3649f90?})
        /usr/local/go/src/runtime/panic.go:770 +0x132
sigs.k8s.io/cluster-api-provider-openstack/pkg/cloud/services/networking.(*Service).CreatePort(0xc00049c678, {0x2418ad0, 0xc0009b1408}, 0xc00041a2c8)
        /workspace/pkg/cloud/services/networking/port.go:195 +0xd55
sigs.k8s.io/cluster-api-provider-openstack/pkg/cloud/services/networking.(*Service).CreatePorts(0xc00049c678, {0x2418ad0, 0xc0009b1408}, {0xc00041a2c8, 0x3, 0x1b9c3a5?}, 0xc000867980)
        /workspace/pkg/cloud/services/networking/port.go:336 +0x66
sigs.k8s.io/cluster-api-provider-openstack/controllers.getOrCreateMachinePorts(0xc000e09a40?, 0x24303d8?)
        /workspace/controllers/openstackmachine_controller.go:759 +0x59
sigs.k8s.io/cluster-api-provider-openstack/controllers.(*OpenStackMachineReconciler).reconcileNormal(0xc00036c180, {0x24303d8, 0xc0008f7530}, 0xc000e09a40, {0xc00037ede0, 0x26}, 0xc0009da288, 0xc0009b1b88, 0xc0009b1408)
        /workspace/controllers/openstackmachine_controller.go:602 +0x307
sigs.k8s.io/cluster-api-provider-openstack/controllers.(*OpenStackMachineReconciler).Reconcile(0xc00036c180, {0x24303d8, 0xc0008f7530}, {{{0xc0008e0660?, 0x0?}, {0xc00005bde0?, 0xc0009d7d50?}}})
        /workspace/controllers/openstackmachine_controller.go:162 +0xb6d
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x2436610?, {0x24303d8?, 0xc0008f7530?}, {{{0xc0008e0660?, 0xb?}, {0xc00005bde0?, 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(0xc0001ee780, {0x2430410, 0xc000661db0}, {0x1e80120, 0xc0002de0a0})
        /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:316 +0x3bc
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0001ee780, {0x2430410, 0xc000661db0})
        /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 238
        /go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/internal/controller/controller.go:223 +0x50c
EmilienM commented 2 months ago

/assign EmilienM :cry:

EmilienM commented 2 months ago

how can I reproduce it?

kashifest commented 2 months ago

My downstream team tells me that you will see this issue while creating a Port, but it seems to me to trigger this error is not that obvious, anyways I might have a probable fix here in #2064 , I am not so much aware of CAPO code base, so I might be wrong.

mdbooth commented 1 month ago

Fixed by https://github.com/kubernetes-sigs/cluster-api-provider-openstack/pull/2064