-
Notifications
You must be signed in to change notification settings - Fork 110
Open
Labels
Description
If a pod for which an additional memif interface is requested misses contivpp.io/memif resource limit in its definition, then Contiv-VPP vswitch will crash:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
* FINALIZED EVENT: Kubernetes State Change #4 *
* HANDLED BY: podmanager, ipam, ipnet, sfc, policy took 1ms *
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* NEW EVENT (follow-up to #4): Pod Custom Interfaces Update #5 *
* * Pod ID: default/cnf-ids *
* * Pod Labels: map[cnf:cnf-ids] *
* * pod Annotations: map[contivpp.io/custom-if:memif1/memif/stub, memif2/memif/stub *
* contivpp.io/microservice-label:cnf-ids] *
* EVENT HANDLERS: ipnet, sfc *
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
time="2020-02-07 13:12:24.03190" level=debug msg="Configuring custom memif interface, name: memif1, network: stub" loc="ipnet/pod.go(243)" logger=ipnet
time="2020-02-07 13:12:24.03540" level=error msg="Couldn't retrieve pod memif information, skipping memif configuration" loc="ipnet/pod.go(269)" logger=ipnet
time="2020-02-07 13:12:24.03555" level=info msg="Stopping the main event loop" loc="controller/plugin_controller.go(463)" logger=controller
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x18d24df]
goroutine 65 [running]:
github.com/contiv/vpp/plugins/ipnet.(*IPNet).podMicroserviceMemif(0xc00048d560, 0xc000a56240, 0x0, 0xc000877a10, 0x6, 0x0, 0x1, 0x0, 0xf, 0x98)
/root/go/src/github.com/contiv/vpp/plugins/ipnet/pod.go:878 +0xef
github.com/contiv/vpp/plugins/ipnet.(*IPNet).podCustomIfsConfig(0xc00048d560, 0xc000a56240, 0x1, 0xc000807f60, 0xc000730b40)
/root/go/src/github.com/contiv/vpp/plugins/ipnet/pod.go:337 +0xf35
github.com/contiv/vpp/plugins/ipnet.(*IPNet).updatePodCustomIfs(0xc00048d560, 0xc0009db528, 0x7, 0xc0009db538, 0x7, 0x236f900, 0xc000930f00, 0x1, 0xc000e85568, 0x40d4e9, ...)
/root/go/src/github.com/contiv/vpp/plugins/ipnet/update_events.go:355 +0xb8
github.com/contiv/vpp/plugins/ipnet.(*IPNet).Update(0xc00048d560, 0x23bac00, 0xc000cd59e0, 0x236f900, 0xc000930f00, 0xc000930e40, 0x2, 0x2, 0x0)
/root/go/src/github.com/contiv/vpp/plugins/ipnet/update_events.go:146 +0x596
github.com/contiv/vpp/plugins/controller.(*Controller).processEvent(0xc0002d43c0, 0xc000930320, 0x0, 0x0)
/root/go/src/github.com/contiv/vpp/plugins/controller/plugin_controller.go:714 +0x7d0
github.com/contiv/vpp/plugins/controller.(*Controller).receiveEvent(0xc0002d43c0, 0xc000930320, 0x5)
/root/go/src/github.com/contiv/vpp/plugins/controller/plugin_controller.go:562 +0x2a0
github.com/contiv/vpp/plugins/controller.(*Controller).eventLoop(0xc0002d43c0)
/root/go/src/github.com/contiv/vpp/plugins/controller/plugin_controller.go:472 +0x832
created by github.com/contiv/vpp/plugins/controller.(*Controller).Init
/root/go/src/github.com/contiv/vpp/plugins/controller/plugin_controller.go:331 +0x576
time="2020-02-07 13:12:25.20520" level=error msg="contiv-agent terminated, stopping VPP" loc="contiv-init/main.go(466)" logger=contiv-init
time="2020-02-07 13:12:25.49099" level=debug msg=exiting loc="contiv-init/main.go(473)" logger=contiv-init
Contiv should handle this situation gracefully and just log error or something.