Created attachment 1698572 [details] vmimport & resouremapping objects Description of problem: Using an invalid Network Mapping Target Type will crash the controller Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. Create a vmimport using Network Binding with wrong target network type 2. 3. Actual results: The Import Controller crashes Expected results: The vmimport should not pass validation Additional info: 1. vmimport & resourcemapping attached 2. controller log: tester@puma55 amastbau]$ kubectl logs -n kubevirt-hyperconverged deploy/vm-import-controller -f {"level":"info","ts":1592998029.416759,"logger":"cmd","msg":"Go Version: go1.12.17"} {"level":"info","ts":1592998029.4172306,"logger":"cmd","msg":"Go OS/Arch: linux/amd64"} {"level":"info","ts":1592998029.4173112,"logger":"cmd","msg":"Version of operator-sdk: v0.15.2"} {"level":"info","ts":1592998029.418811,"logger":"leader","msg":"Trying to become the leader."} {"level":"info","ts":1592998032.1241577,"logger":"leader","msg":"Found existing lock with my name. I was likely restarted."} {"level":"info","ts":1592998032.1242495,"logger":"leader","msg":"Continuing as the leader."} {"level":"info","ts":1592998034.797448,"logger":"controller-runtime.metrics","msg":"metrics server is starting to listen","addr":"0.0.0.0:8383"} {"level":"info","ts":1592998034.7983565,"logger":"cmd","msg":"Registering Components."} {"level":"info","ts":1592998043.0485554,"logger":"cmd","msg":"Could not create metrics Service","error":"failed to create or get service for metrics: &{{{%!w(string=) %!w(string=)} {%!w(string=) %!w(string=) %!w(string=) %!w(*int64=<nil>)} %!w(string=Failure) %!w(string=services \"vm-import-operator-metrics\" is forbidden: cannot set blockOwnerDeletion if an ownerReference refers to a resource you can't set finalizers on: , <nil>) %!w(v1.StatusReason=Forbidden) %!w(*v1.StatusDetails=&{vm-import-operator-metrics services [] 0}) %!w(int32=403)}}"} {"level":"info","ts":1592998045.7049277,"logger":"cmd","msg":"Starting the Cmd."} {"level":"info","ts":1592998045.7056153,"logger":"controller-runtime.manager","msg":"starting metrics server","path":"/metrics"} {"level":"info","ts":1592998045.7056608,"logger":"controller-runtime.controller","msg":"Starting EventSource","controller":"virtualmachineimport-controller","source":"kind source: /, Kind="} {"level":"info","ts":1592998045.8064594,"logger":"controller-runtime.controller","msg":"Starting EventSource","controller":"virtualmachineimport-controller","source":"kind source: /, Kind="} {"level":"info","ts":1592998045.9077852,"logger":"controller-runtime.controller","msg":"Starting EventSource","controller":"virtualmachineimport-controller","source":"kind source: /, Kind="} {"level":"info","ts":1592998046.0084708,"logger":"controller-runtime.controller","msg":"Starting Controller","controller":"virtualmachineimport-controller"} {"level":"info","ts":1592998046.008649,"logger":"controller-runtime.controller","msg":"Starting workers","controller":"virtualmachineimport-controller","worker count":1} {"level":"info","ts":1592998046.0087934,"logger":"controller_virtualmachineimport","msg":"Reconciling VirtualMachineImport","Request.Namespace":"amastbaum-rhv2cnv","Request.Name":"example-vmimport"} {"level":"info","ts":1592998049.2315438,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {vm.cpu_shares VM specifies CPU shares that should be available to it}"} {"level":"info","ts":1592998049.23161,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {vm.display.type VM uses spice display}"} {"level":"info","ts":1592998049.2316308,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {vm.high_availability.priority VM uses high availability priority: 1}"} {"level":"info","ts":1592998049.2316406,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {vm.memory_policy.ballooning VM enables memory ballooning}"} {"level":"info","ts":1592998049.2316487,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {vm.memory_policy.guaranteed VM specifies guaranteed memory: 536870912}"} {"level":"info","ts":1592998049.2316816,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {vm.migration VM has migration options specified}"} {"level":"info","ts":1592998049.2316906,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {vm.migration_downtime VM has migration downtime specified: -1}"} {"level":"info","ts":1592998049.2317011,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {vm.storage_error_resume_behaviour VM has storage error resume behaviour set: auto_resume}"} {"level":"info","ts":1592998049.23171,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {vm.graphic_consoles.protocol VM has non-VNC graphics console configured: spice}"} {"level":"info","ts":1592998049.2317183,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {vm.quota VM has quota with ID 767e9696-3e2c-49d6-815b-c5fa0eba20ab assigned}"} {"level":"info","ts":1592998049.2317271,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {nic.on_boot interface d4343a0b-8f3c-416c-841d-2087dcacca05 is not enabled on boot.}"} {"level":"info","ts":1592998049.231769,"logger":"validation","msg":"Validation information for amastbaum-rhv2cnv/example-vmimport: {disk_attachment.disk.propagate_errors disk 206ffcea-705c-4037-99bb-508f2fc0c3b7 has propagate_errors configured: false}"} {"level":"info","ts":1592998049.2444866,"logger":"controller_virtualmachineimport","msg":"Storing source VM status","Request.Namespace":"amastbaum-rhv2cnv","Request.Name":"example-vmimport","status":"down"} {"level":"info","ts":1592998050.3612309,"logger":"controller_virtualmachineimport","msg":"No matching template was found for the virtual machine. Using empty VM definition","Request.Namespace":"amastbaum-rhv2cnv","Request.Name":"example-vmimport"} {"level":"info","ts":1592998050.3973565,"logger":"controller_virtualmachineimport","msg":"Creating a new VM","Request.Namespace":"amastbaum-rhv2cnv","Request.Name":"example-vmimport","VM.Namespace":"amastbaum-rhv2cnv","VM.Name":"amastbau-testvm-testing123"} {"level":"info","ts":1592998050.6674256,"logger":"controller-runtime.controller","msg":"Starting EventSource","controller":"virtualmachineimport-controller","source":"kind source: /, Kind="} {"level":"info","ts":1592998051.207026,"logger":"controller_virtualmachineimport","msg":"Reconciling VirtualMachineImport","Request.Namespace":"amastbaum-rhv2cnv","Request.Name":"example-vmimport-2disks"} {"level":"info","ts":1592998051.2072327,"logger":"controller_virtualmachineimport","msg":"Not running reconcile","Request.Namespace":"amastbaum-rhv2cnv","Request.Name":"example-vmimport-2disks"} {"level":"info","ts":1592998051.207266,"logger":"controller_virtualmachineimport","msg":"Reconciling VirtualMachineImport","Request.Namespace":"default","Request.Name":"example-cirros"} {"level":"info","ts":1592998051.2073877,"logger":"controller_virtualmachineimport","msg":"Not running reconcile","Request.Namespace":"default","Request.Name":"example-cirros"} {"level":"info","ts":1592998051.207419,"logger":"controller_virtualmachineimport","msg":"Reconciling VirtualMachineImport","Request.Namespace":"amastbaum-rhv2cnv","Request.Name":"example-vmimport-2nics-xxx"} {"level":"info","ts":1592998051.207787,"logger":"controller_virtualmachineimport","msg":"No need to fetch virtual machine - skipping","Request.Namespace":"amastbaum-rhv2cnv","Request.Name":"example-vmimport-2nics-xxx"} {"level":"info","ts":1592998051.2079484,"logger":"controller_virtualmachineimport","msg":"VirtualMachineImport has already been validated positively. Skipping re-validation","Request.Namespace":"amastbaum-rhv2cnv","Request.Name":"example-vmimport-2nics-xxx"} {"level":"info","ts":1592998052.1894908,"logger":"controller_virtualmachineimport","msg":"No matching template was found for the virtual machine. Using empty VM definition","Request.Namespace":"amastbaum-rhv2cnv","Request.Name":"example-vmimport-2nics-xxx"} E0624 11:27:32.238622 1 runtime.go:78] Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference) goroutine 1622 [running]: k8s.io/apimachinery/pkg/util/runtime.logPanic(0x1e81e80, 0x384cff0) /src/vm-import-operator/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:74 +0xa3 k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0) /src/vm-import-operator/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:48 +0x82 panic(0x1e81e80, 0x384cff0) /usr/local/go/src/runtime/panic.go:522 +0x1b5 github.com/kubevirt/vm-import-operator/pkg/providers/ovirt/mapper.(*OvirtMapper).mapNetworkType(...) /src/vm-import-operator/pkg/providers/ovirt/mapper/mapper.go:372 github.com/kubevirt/vm-import-operator/pkg/providers/ovirt/mapper.(*OvirtMapper).getNetworkForNic(0xc0014ee6c0, 0xc002dc05b0, 0x0, 0x0, 0x0, 0x0, 0x0) /src/vm-import-operator/pkg/providers/ovirt/mapper/mapper.go:360 +0x1f3 github.com/kubevirt/vm-import-operator/pkg/providers/ovirt/mapper.(*OvirtMapper).mapNetworks(0xc0014ee6c0, 0xc00379fe20, 0xc0014534d0, 0xc0014ebd60) /src/vm-import-operator/pkg/providers/ovirt/mapper/mapper.go:331 +0xba github.com/kubevirt/vm-import-operator/pkg/providers/ovirt/mapper.(*OvirtMapper).MapVM(0xc0014ee6c0, 0xc001a2fb10, 0xc003d7aa80, 0x0, 0x0, 0x0) /src/vm-import-operator/pkg/providers/ovirt/mapper/mapper.go:172 +0x477 github.com/kubevirt/vm-import-operator/pkg/controller/virtualmachineimport.(*ReconcileVirtualMachineImport).createVM(0xc000893500, 0x2475480, 0xc002d5a000, 0xc000387ba0, 0x243aec0, 0xc0014ee6c0, 0x0, 0x2405180, 0xc000387ba0, 0x0) /src/vm-import-operator/pkg/controller/virtualmachineimport/virtualmachineimport_controller.go:429 +0x284 github.com/kubevirt/vm-import-operator/pkg/controller/virtualmachineimport.(*ReconcileVirtualMachineImport).Reconcile(0xc000893500, 0xc000b29560, 0x11, 0xc000b29540, 0x1a, 0x3868e00, 0x0, 0x0, 0x0) /src/vm-import-operator/pkg/controller/virtualmachineimport/virtualmachineimport_controller.go:250 +0x724 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0001d0480, 0x1f06ce0, 0xc000565e00, 0x1f06c00) /src/vm-import-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:256 +0x146 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0001d0480, 0xc000556c00) /src/vm-import-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:232 +0xb5 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker(0xc0001d0480) /src/vm-import-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:211 +0x2b k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1(0xc0008200d0) /src/vm-import-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:152 +0x54 k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc0008200d0, 0x3b9aca00, 0x0, 0x1, 0xc00009a420) /src/vm-import-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:153 +0xf8 k8s.io/apimachinery/pkg/util/wait.Until(0xc0008200d0, 0x3b9aca00, 0xc00009a420) /src/vm-import-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88 +0x4d created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1 /src/vm-import-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:193 +0x326 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=0x8 pc=0x1a812d3] goroutine 1622 [running]: k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0) /src/vm-import-operator/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:55 +0x105 panic(0x1e81e80, 0x384cff0) /usr/local/go/src/runtime/panic.go:522 +0x1b5 github.com/kubevirt/vm-import-operator/pkg/providers/ovirt/mapper.(*OvirtMapper).mapNetworkType(...) /src/vm-import-operator/pkg/providers/ovirt/mapper/mapper.go:372 github.com/kubevirt/vm-import-operator/pkg/providers/ovirt/mapper.(*OvirtMapper).getNetworkForNic(0xc0014ee6c0, 0xc002dc05b0, 0x0, 0x0, 0x0, 0x0, 0x0) /src/vm-import-operator/pkg/providers/ovirt/mapper/mapper.go:360 +0x1f3 github.com/kubevirt/vm-import-operator/pkg/providers/ovirt/mapper.(*OvirtMapper).mapNetworks(0xc0014ee6c0, 0xc00379fe20, 0xc0014534d0, 0xc0014ebd60) /src/vm-import-operator/pkg/providers/ovirt/mapper/mapper.go:331 +0xba github.com/kubevirt/vm-import-operator/pkg/providers/ovirt/mapper.(*OvirtMapper).MapVM(0xc0014ee6c0, 0xc001a2fb10, 0xc003d7aa80, 0x0, 0x0, 0x0) /src/vm-import-operator/pkg/providers/ovirt/mapper/mapper.go:172 +0x477 github.com/kubevirt/vm-import-operator/pkg/controller/virtualmachineimport.(*ReconcileVirtualMachineImport).createVM(0xc000893500, 0x2475480, 0xc002d5a000, 0xc000387ba0, 0x243aec0, 0xc0014ee6c0, 0x0, 0x2405180, 0xc000387ba0, 0x0) /src/vm-import-operator/pkg/controller/virtualmachineimport/virtualmachineimport_controller.go:429 +0x284 github.com/kubevirt/vm-import-operator/pkg/controller/virtualmachineimport.(*ReconcileVirtualMachineImport).Reconcile(0xc000893500, 0xc000b29560, 0x11, 0xc000b29540, 0x1a, 0x3868e00, 0x0, 0x0, 0x0) /src/vm-import-operator/pkg/controller/virtualmachineimport/virtualmachineimport_controller.go:250 +0x724 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0001d0480, 0x1f06ce0, 0xc000565e00, 0x1f06c00) /src/vm-import-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:256 +0x146 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0001d0480, 0xc000556c00) /src/vm-import-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:232 +0xb5 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker(0xc0001d0480) /src/vm-import-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:211 +0x2b k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1(0xc0008200d0) /src/vm-import-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:152 +0x54 k8s.io/apimachinery/pkg/util/wait.JitterUntil(0xc0008200d0, 0x3b9aca00, 0x0, 0x1, 0xc00009a420) /src/vm-import-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:153 +0xf8 k8s.io/apimachinery/pkg/util/wait.Until(0xc0008200d0, 0x3b9aca00, 0xc00009a420) /src/vm-import-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88 +0x4d created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1 /src/vm-import-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:193 +0x326
thank you @Nelly. done.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2020:3194