Skip to content

Panic when receiving Cloud without IPAM provider #1387

Open
@jduepmeier

Description

@jduepmeier

Describe the bug

If the cloud configuration does not define an ipam provider a panic occurs.

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x1741002]
 
goroutine 1 [running]:
github.com/vmware/load-balancer-and-ingress-services-for-kubernetes/ako-infra/avirest.AviCloudCachePopulate(0x0?, {0x1b83ff7, 0xd})
        /build/mts/release/bora-21883866/cayman_load-balancer-and-ingress-services-for-kubernetes/build/release/lin64/load-balancer-and-ingress-services-for-kubernetes/build/src/ako-infra/avirest/handle_netinfo.go:398 +0x3c2
github.com/vmware/load-balancer-and-ingress-services-for-kubernetes/ako-infra/avirest.getAviCloudFromCache(...)
        /build/mts/release/bora-21883866/cayman_load-balancer-and-ingress-services-for-kubernetes/build/release/lin64/load-balancer-and-ingress-services-for-kubernetes/build/src/ako-infra/avirest/handle_netinfo.go:345
github.com/vmware/load-balancer-and-ingress-services-for-kubernetes/ako-infra/avirest.SyncLSLRNetwork()
        /build/mts/release/bora-21883866/cayman_load-balancer-and-ingress-services-for-kubernetes/build/release/lin64/load-balancer-and-ingress-services-for-kubernetes/build/src/ako-infra/avirest/handle_netinfo.go:51 +0x110
main.InitializeAKOInfra()
        /build/mts/release/bora-21883866/cayman_load-balancer-and-ingress-services-for-kubernetes/build/release/lin64/load-balancer-and-ingress-services-for-kubernetes/build/src/cmd/infra-main/main.go:114 +0x86a
main.main()
        /build/mts/release/bora-21883866/cayman_load-balancer-and-ingress-services-for-kubernetes/build/release/lin64/load-balancer-and-ingress-services-for-kubernetes/build/src/cmd/infra-main/main.go:39 +0x17

Reproduction steps

  1. Setup a cloud without IPAM provider
  2. Run ako pod
  3. Panic occurs

Expected behavior

No panic should occur.

Additional context

I think the problem is this line:
https://github.com/vmware/load-balancer-and-ingress-services-for-kubernetes/blob/master/ako-infra/avirest/handle_netinfo.go#L399

It deferences the CloudCache.IPAMProviderRef without checking for nil.

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions