-
Bug
-
Resolution: Unresolved
-
Critical
-
2.10.3
-
None
Description of problem:
When running only conversion mode, for example with NetApp shift. The controller gets stuck on validation and breaks the migration flow.
Version-Release number of selected component (if applicable):
How reproducible:
Always / N%
Steps to Reproduce:
1. Set Plan type to conversion
Actual results:
{"level":"error","ts":"2026-01-16 08:17:34.483","msg":"Observed a panic","controller":"plan","object":{"name":"mtv-shift","namespace":"default"},"namespace":"default","name":"mtv-shift","reconcileID":"1048a470-4bb3-4d8e-8ab6-46dcafc5d50d","panic":"runtime error: invalid memory address or nil pointer dereference","panicGoValue":"\"invalid memory address or nil pointer dereference\"","stacktrace":"goroutine 167 [running]:\nk8s.io/apimachinery/pkg/util/runtime.logPanic({0x3e28de8, 0xc00381c510}, {0x321d640, 0x5bd7fb0})\n\t/app/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:107 +0xbc\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile.func1()\n\t/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:108 +0x112\npanic({0x321d640?, 0x5bd7fb0?})\n\t/usr/lib/golang/src/runtime/panic.go:792 +0x132\ngithub.com/kubev2v/forklift/pkg/controller/plan.(*Reconciler).planUsesVSphereXcopyPopulator(0x38e7560?, 0xc00150e008)\n\t/app/pkg/controller/plan/ssh.go:91 +0x29\ngithub.com/kubev2v/forklift/pkg/controller/plan.(*Reconciler).validateSSHReadiness(0xc002a5c5c0?, 0xc00150e008)\n\t/app/pkg/controller/plan/ssh.go:31 +0x85\ngithub.com/kubev2v/forklift/pkg/controller/plan.(*Reconciler).validate(0xc002a5c5c0, 0xc00150e008)\n\t/app/pkg/controller/plan/validation.go:221 +0x3f4\ngithub.com/kubev2v/forklift/pkg/controller/plan.Reconciler.Reconcile({{{0x3e16150, 0xc000401e40}, {0x3e40360, 0xc00014e7e0}, {0x3e317b0, 0xc000992360}}, {0x7fbe6a55d1c8, 0xc00014ea20}}, {0x3e28de8, 0xc00381c510}, ...)\n\t/app/pkg/controller/plan/controller.go:225 +0x6a5\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile(0xc00381c480?, {0x3e28de8?, 0xc00381c510?}, {{{0xc00274d2f0?, 0x0?}, {0xc00274d2e6?, 0x0?}}})\n\t/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:119 +0xbf\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler(0x3e5f260, {0x3e28e20, 0xc000033090}, {{{0xc00274d2f0, 0x7}, {0xc00274d2e6, 0x9}}}, 0x0)\n\t/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:334 +0x378\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem(0x3e5f260, {0x3e28e20, 0xc000033090})\n\t/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:294 +0x21b\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2.2()\n\t/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:255 +0x85\ncreated by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2 in goroutine 86\n\t/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:251 +0x6b5\n","stacktrace":"github.com/kubev2v/forklift/pkg/controller/plan.(*Reconciler).planUsesVSphereXcopyPopulator\n\t/app/pkg/controller/plan/ssh.go:91\ngithub.com/kubev2v/forklift/pkg/controller/plan.(*Reconciler).validateSSHReadiness\n\t/app/pkg/controller/plan/ssh.go:31\ngithub.com/kubev2v/forklift/pkg/controller/plan.(*Reconciler).validate\n\t/app/pkg/controller/plan/validation.go:221\ngithub.com/kubev2v/forklift/pkg/controller/plan.Reconciler.Reconcile\n\t/app/pkg/controller/plan/controller.go:225\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile\n\t/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:119\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler\n\t/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:334\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem\n\t/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:294\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2.2\n\t/app/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:255"}
Expected results:
Additional info: