Uploaded image for project: 'Migration Toolkit for Virtualization'
  1. Migration Toolkit for Virtualization
  2. MTV-1134

forklift-controller panics when importing VMs with direct LUNs

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done-Errata
    • Icon: Critical Critical
    • 2.6.2
    • None
    • None

      Description of problem:

      Regrestion:  Migrating a VM that has a direct LUN from RHV, the forklift-controller panics and restarts.

      ~~~
      └─$ oc get pods -n openshift-mtv
      NAME                                                    READY   STATUS    RESTARTS   AGE
      forklift-api-588f9bf86-9mhjx                            1/1     Running   0          4d
      forklift-controller-68768465b-l2qjt                     2/2     Running   16         3d
      forklift-operator-6759ff4794-wg72g                      1/1     Running   0          4d
      forklift-ui-plugin-58fc9b89ff-zc8sq                     1/1     Running   0          4d
      forklift-validation-7d69c4494f-bxnl9                    1/1     Running   0          4d
      forklift-volume-populator-controller-8656b94ff5-tgpbf   1/1     Running   0          4d

      ~~~

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

      MTV 2.6.1

      How reproducible:
      Always

      Steps to Reproduce:

      • In RHV create a VM that has a direct LUN
      • Make the LUN available to Openshift nodes
      • Power VM down
      • Create migraton plan
      • Migrate VM that has a direct LUN

       

      Actual results:

      From the forklift-conroller main logs:

      ~~~

      2024-05-09T23:18:33.141018707Z {"level":"info","ts":"2024-05-09 23:18:33.140","logger":"plan|9p9t4","msg":"Migration [RUN]","plan":

      {"name":"plan1","namespace":"default"}

      ,"migration":"default/plan1-jp2xr","vm":" id:fadf87a6-3725-4047-85f6-7c567f22389c name:'vmName'
       ","phase":"CreateVM"}
      2024-05-09T23:18:33.154434590Z {"level":"info","ts":"2024-05-09 23:18:33.154","logger":"networkMap|qdcp4","msg":"Reconcile ended.","map":

      {"name":"vmName.lcoal","namespace":"default"}

      ,"reQ":0}
      2024-05-09T23:18:33.780771337Z {"level":"info","ts":"2024-05-09 23:18:33.780","logger":"plan|9p9t4","msg":"could not find a local instance type preference for destination VM. trying cluster wide","plan":

      {"name":"plan1","namespace":"default"}

      ,"migration":"default/plan1-
      jp2xr","vm":" id:fadf87a6-3725-4047-85f6-7c567f22389c name:'vmName' "}
      2024-05-09T23:18:33.844793621Z {"level":"info","ts":"2024-05-09 23:18:33.844","logger":"plan|9p9t4","msg":"Reconcile ended.","plan":

      {"name":"plan1","namespace":"default"}

      ,"reQ":0}
      2024-05-09T23:18:33.844793621Z {"level":"info","ts":"2024-05-09 23:18:33.844","msg":"Observed a panic in reconciler: runtime error: invalid memory address or nil pointer dereference","controller":"plan","object":

      {"name":"plan1","namespace":"default"}

      ,"namespace":"default","name":"plan1","reconcileID":"5c36a98c-cdfd-4c7a-88ec-4cffa8a4cac1"}
      2024-05-09T23:18:33.846986969Z panic: runtime error: invalid memory address or nil pointer dereference [recovered]
      2024-05-09T23:18:33.846986969Z  panic: runtime error: invalid memory address or nil pointer dereference
      2024-05-09T23:18:33.846986969Z [signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x2791c1a]
      2024-05-09T23:18:33.846986969Z 
      2024-05-09T23:18:33.846986969Z goroutine 377 [running]:
      2024-05-09T23:18:33.846986969Z sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()
      2024-05-09T23:18:33.846986969Z  /remote-source/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:116 +0x1fa
      2024-05-09T23:18:33.846986969Z panic({0x2d8c4a0, 0x50924b0})
      2024-05-09T23:18:33.846986969Z  /usr/lib/golang/src/runtime/panic.go:884 +0x213
      2024-05-09T23:18:33.846986969Z github.com/konveyor/forklift-controller/pkg/controller/plan/adapter/ovirt.(*Builder).mapDisks(0xc0037de760?, 0xc0025f6000, {0x518c218, 0x0, 0x0?}, 0xc0008be308)
      2024-05-09T23:18:33.846986969Z  /remote-source/app/pkg/controller/plan/adapter/ovirt/builder.go:452 +0x25a
      2024-05-09T23:18:33.846986969Z github.com/konveyor/forklift-controller/pkg/controller/plan/adapter/ovirt.(*Builder).VirtualMachine(0xc0037de760, {

      {0xc0006ba300, 0x24}

      , {0xc0005149a0, 0xb}, {0x0, 0x0}, {0x0, 0x0}}, 0xc0008be308, ...)
      2024-05-09T23:18:33.846986969Z  /remote-source/app/pkg/controller/plan/adapter/ovirt/builder.go:269 +0x189
      2024-05-09T23:18:33.846986969Z github.com/konveyor/forklift-controller/pkg/controller/plan.(*KubeVirt).virtualMachine(0xc0004e1438, 0xc000e9e600)
      2024-05-09T23:18:33.847006932Z  /remote-source/app/pkg/controller/plan/kubevirt.go:1259 +0xad7
      2024-05-09T23:18:33.847006932Z github.com/konveyor/forklift-controller/pkg/controller/plan.(*KubeVirt).EnsureVM(0xc0004e1438, 0xc000e9e600)
      2024-05-09T23:18:33.847006932Z  /remote-source/app/pkg/controller/plan/kubevirt.go:385 +0x3a5
      2024-05-09T23:18:33.847069358Z github.com/konveyor/forklift-controller/pkg/controller/plan.(*Migration).execute(0xc0004e1420, 0xc000e9e600)
      2024-05-09T23:18:33.847069358Z  /remote-source/app/pkg/controller/plan/migration.go:823 +0x14025
      2024-05-09T23:18:33.847083722Z github.com/konveyor/forklift-controller/pkg/controller/plan.(*Migration).Run(0xc0004e1420)
      2024-05-09T23:18:33.847083722Z  /remote-source/app/pkg/controller/plan/migration.go:193 +0x2ab
      2024-05-09T23:18:33.847083722Z github.com/konveyor/forklift-controller/pkg/controller/plan.(*Reconciler).execute(0xc002eecf90, 0xc000858c00)
      2024-05-09T23:18:33.847083722Z  /remote-source/app/pkg/controller/plan/controller.go:427 +0xa1c
      2024-05-09T23:18:33.847083722Z github.com/konveyor/forklift-controller/pkg/controller/plan.Reconciler.Reconcile({0x37d8a00, 0xc0004f44c0}, {0x37e8da0, 0xc0001f4630}, {0x37e0350, 0xc0003aa440}, {0xc00081dac0?, 0xc0006efce8?}, {0xc000514876, 0x7}, ...)
      2024-05-09T23:18:33.847103682Z  /remote-source/app/pkg/controller/plan/controller.go:256 +0xa10
      2024-05-09T23:18:33.847108327Z sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x37ddc80?, {0x37da910?, 0xc002eecf60?}, {0xc000514876?, 0xb?}, {0xc000514870?, 0x0?})
      2024-05-09T23:18:33.847121627Z  /remote-source/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:119 +0xc8
      2024-05-09T23:18:33.847126239Z sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc000486fa0, {0x37da868, 0xc000a07590}, {0x2fbe2a0?, 0xc00058f6e0?})
      2024-05-09T23:18:33.847130609Z  /remote-source/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:316 +0x3ca
      2024-05-09T23:18:33.847135255Z sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc000486fa0, {0x37da868, 0xc000a07590})
      2024-05-09T23:18:33.847139809Z  /remote-source/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:266 +0x1d9
      2024-05-09T23:18:33.847144328Z sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()
      2024-05-09T23:18:33.847144328Z  /remote-source/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:227 +0x85
      2024-05-09T23:18:33.847148740Z created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2
      2024-05-09T23:18:33.847148740Z  /remote-source/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:223 +0x587

      ~~~

       

       

      Expected results:

      To migrate with direct LUNs

      Additional info:

      As a workaround this does work in openshift-mtv 2.5.6

              lrotenbe Liran Rotenberg
              rhn-support-schandle Samuel Chandler
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: