sureshanaparti opened a new issue, #11425:
URL: https://github.com/apache/cloudstack/issues/11425
### problem
Live migration of VM with config drive fails with error:
java.lang.NullPointerException: Cannot invoke
"com.cloud.storage.Storage$StoragePoolType.toString()" because "type" is null.
The first migration attempt removes the config drive from the xml, and the
second attempt succeeds, but no config drive attached to it (after migration)
MS log:
```
2025-08-11 06:01:10,887 DEBUG [c.c.a.m.ClusteredAgentAttache]
(Work-Job-Executor-8:[ctx-9716983a, job-46/job-47, ctx-0e302ca4])
(logid:115dd2bf) Seq 4-6100688645226770330: Routed from 32985852150177
2025-08-11 06:01:10,891 DEBUG [c.c.a.t.Request]
(Work-Job-Executor-8:[ctx-9716983a, job-46/job-47, ctx-0e302ca4])
(logid:115dd2bf) Seq 1-6100688645226770330: Sending { Cmd , MgmtId:
32985852150177, via: 1(ref-trl-9195-k-Mol8-suresh-anaparti-kvm1), Ver: v1,
Flags: 100011,
[{"com.cloud.agent.api.MigrateCommand":{"vmName":"i-2-5-VM","destIp":"10.0.32.165","migrateStorageManaged":"false","migrateNonSharedInc":"false","autoConvergence":"false","hostGuid":"39ed092a-9e7b-32fd-b99f-8412af2d12e5-LibvirtComputingResource","isWindows":"false","vmTO":{"id":"5","name":"i-2-5-VM","state":"Running","type":"User","cpus":"1","minSpeed":"250","maxSpeed":"500","minRam":"(512.00
MB) 536870912","maxRam":"(512.00 MB) 536870912","arch":"x86_64","os":"CentOS
5.5 (64-bit)","platformEmulator":"CentOS
5.5","bootArgs":"","enableHA":"false","limitCpuUse":"false","enableDynamicallyScaleVm":"false","params":{"configDriveLocation":"SECONDARY","cpuOvercommitRatio":"2.0"},"uuid":"8bb0d860-5b61-43c2-a128-21d467db0
dc3","enterHardwareSetup":"false","disks":[{"data":{"org.apache.cloudstack.storage.to.TemplateObjectTO":{"path":"configdrive/i-2-5-VM.iso","uuid":"8bb0d860-5b61-43c2-a128-21d467db0dc3","id":"0","format":"ISO","accountId":"0","hvm":"false","imageDataStore":{"com.cloud.agent.api.to.NfsTO":{"_url":"NFS://10.0.32.4/acs/secondary/ref-trl-9195-k-Mol8-suresh-anaparti/ref-trl-9195-k-Mol8-suresh-anaparti-sec1","_role":"Image"}},"bootable":"false","directDownload":"false","deployAsIs":"false","followRedirects":"false"}},"diskSeq":"4","path":"configdrive/i-2-5-VM.iso","type":"ISO"},{"data":{"org.apache.cloudstack.storage.to.VolumeObjectTO":{"uuid":"080f64dd-d627-42f4-8281-60efc9140835","volumeType":"ROOT","dataStore":{"org.apache.cloudstack.storage.to.PrimaryDataStoreTO":{"uuid":"cf1bf14f-0193-3fab-bb25-69f5793330e6","name":"ref-trl-9195-k-Mol8-suresh-anaparti-kvm-pri2","id":"2","poolType":"NetworkFilesystem","host":"10.0.32.4","path":"/acs/primary/ref-trl-9195-k-Mol8-suresh-anaparti/ref-trl-9
195-k-Mol8-suresh-anaparti-kvm-pri2","port":"2049","url":"NetworkFilesystem://10.0.32.4/acs/primary/ref-trl-9195-k-Mol8-suresh-anaparti/ref-trl-9195-k-Mol8-suresh-anaparti-kvm-pri2/?ROLE=Primary&STOREUUID=cf1bf14f-0193-3fab-bb25-69f5793330e6","isManaged":"false"}},"name":"ROOT-5","size":"(8.00
GB)
8589934592","path":"080f64dd-d627-42f4-8281-60efc9140835","volumeId":"8","vmName":"i-2-5-VM","accountId":"2","format":"QCOW2","provisioningType":"THIN","poolId":"2","id":"8","deviceId":"0","bytesReadRate":"(0
bytes) 0","bytesWriteRate":"(0 bytes) 0","iopsReadRate":"(0 bytes)
0","iopsWriteRate":"(0 bytes)
0","hypervisorType":"KVM","directDownload":"false","deployAsIs":"false","followRedirects":"false"}},"diskSeq":"0","path":"080f64dd-d627-42f4-8281-60efc9140835","type":"ROOT","_details":{"storageHost":"10.0.32.4","managed":"false","storagePort":"2049","storage.pool.disk.wait":"60","volumeSize":"(8.00
GB)
8589934592"}},{"data":{"org.apache.cloudstack.storage.to.TemplateObjectTO":{"id":"0","f
ormat":"ISO","accountId":"0","hvm":"false","bootable":"false","directDownload":"false","deployAsIs":"false","followRedirects":"false"}},"diskSeq":"3","type":"ISO"}],"nics":[{"deviceId":"0","networkRateMbps":"200","defaultNic":"true","pxeDisable":"false","nicUuid":"a8d499fe-c315-4109-a1d0-ee74e41e3e99","details":{"ForgedTransmits":"true","internetProtocol":"IPv4","PromiscuousMode":"false","MacAddressChanges":"true","MacLearning":"false"},"dpdkEnabled":"false","networkId":"204","networkSegmentName":"D1-A2-Z1-S204","uuid":"96a34786-bf05-40e7-bfe6-00becfb5f47c","ip":"10.1.1.236","netmask":"255.255.255.0","gateway":"10.1.1.1","mac":"02:01:00:cc:00:03","dns1":"10.0.32.1","dns2":"8.8.8.8","broadcastType":"Vlan","type":"Guest","broadcastUri":"vlan://1082","isolationUri":"vlan://1082","isSecurityGroupEnabled":"false","name":"cloudbr1"}],"vcpuMaxLimit":"1","vmData":[["metadata","service-offering","Small
Instance"],["metadata","availability-zone","ref-trl-9195-k-Mol8-suresh-anaparti"],["metada
ta","local-hostname","testvm02"],["metadata","local-ipv4","10.1.1.236"],["metadata","public-ipv4","10.1.1.236"],["metadata","public-hostname",],["metadata","instance-id","8bb0d860-5b61-43c2-a128-21d467db0dc3"],["metadata","vm-id","8bb0d860-5b61-43c2-a128-21d467db0dc3"],["metadata","public-keys",],["metadata","cloud-identifier","CloudStack-{d49fa504-d0fe-410b-8e67-ab94e1a7a75b}"],["metadata","hypervisor-host-name",]],"configDriveLabel":"config-2","configDriveLocation":"SECONDARY","guestOsDetails":{},"extraConfig":{},"networkIdToNetworkNameMap":{"204":"D1-A2-Z1-S204"}},"executeInSequence":"false","migrateDiskInfoList":[],"dpdkInterfaceMapping":{},"newVmCpuShares":"250","vlanToPersistenceMap":{"1082":"true"},"wait":"0","bypassHostMaintenance":"false"}}]
}
2025-08-11 06:01:11,002 DEBUG [c.c.a.t.Request] (AgentManager-Handler-12:[])
(logid:) Seq 1-6100688645226770330: Processing: { Ans: , MgmtId:
32985852150177, via: 1, Ver: v1, Flags: 10,
[{"com.cloud.agent.api.Answer":{"result":"false","details":"java.lang.NullPointerException:
Cannot invoke "com.cloud.storage.Storage$StoragePoolType.toString()" because
"type" is null
at
com.cloud.hypervisor.kvm.storage.LibvirtStorageAdaptor.createStoragePool(LibvirtStorageAdaptor.java:736)
at
com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager.createStoragePool(KVMStoragePoolManager.java:393)
at
com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager.getStoragePoolByURI(KVMStoragePoolManager.java:339)
at
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.attachOrDetachISO(LibvirtComputingResource.java:3513)
at
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.detachAndAttachConfigDriveISO(LibvirtComputingResource.java:3492)
at
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtMigrateCommandWrapper.execute(LibvirtMigrateCommandWrapper.java:232)
at
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtMigrateCommandWrapper.execute(LibvirtMigrateCommandWrapper.java:88)
at
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRequestWrapper.execute(LibvirtRequestWrapper.java:78)
at
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeRequest(LibvirtComputingResource.java:1958)
at com.cloud.agent.Agent.processRequest(Agent.java:779)
at com.cloud.agent.Agent$AgentRequestHandler.doTask(Agent.java:1194)
at com.cloud.utils.nio.Task.call(Task.java:83)
at com.cloud.utils.nio.Task.call(Task.java:29)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
","wait":"0","bypassHostMaintenance":"false"}}] }
2025-08-11 06:01:11,003 DEBUG [c.c.a.t.Request]
(Work-Job-Executor-8:[ctx-9716983a, job-46/job-47, ctx-0e302ca4])
(logid:115dd2bf) Seq 1-6100688645226770330: Received: { Ans: , MgmtId:
32985852150177, via: 1(ref-trl-9195-k-Mol8-suresh-anaparti-kvm1), Ver: v1,
Flags: 10, { Answer } }
2025-08-11 06:01:11,003 INFO [c.c.v.ClusteredVirtualMachineManagerImpl]
(Work-Job-Executor-8:[ctx-9716983a, job-46/job-47, ctx-0e302ca4])
(logid:115dd2bf) Migration was unsuccessful. Cleaning up: VM instance
{"id":5,"instanceName":"i-2-5-VM","state":"Migrating","type":"User","uuid":"8bb0d860-5b61-43c2-a128-21d467db0dc3"}
2025-08-11 06:01:11,013 DEBUG [o.a.c.e.o.VolumeOrchestrator]
(Work-Job-Executor-8:[ctx-9716983a, job-46/job-47, ctx-0e302ca4])
(logid:115dd2bf) Releasing [1] volumes for VM [VM instance
{"id":5,"instanceName":"i-2-5-VM","state":"Migrating","type":"User","uuid":"8bb0d860-5b61-43c2-a128-21d467db0dc3"}]
from host [Host
{"id":2,"name":"ref-trl-9195-k-Mol8-suresh-anaparti-kvm2","type":"Routing","uuid":"fa74f4d2-e5c6-4382-8d42-e42c195095f5"}].
```
Agent log:
```
2025-08-11 06:01:10,997 DEBUG [kvm.resource.LibvirtComputingResource]
(AgentRequest-Handler-1:[]) (logid:) Attaching ConfigDrive ISO of the VM
i-2-5-VM, at path /mnt/3e0fe9c4-bcad-3a7d-9350-44694b760e74/i-2-5-VM.iso
2025-08-11 06:01:10,997 DEBUG [kvm.storage.KVMStoragePoolManager]
(AgentRequest-Handler-1:[]) (logid:) Get storage pool by uri:
/mnt/3e0fe9c4-bcad-3a7d-9350-44694b760e74
2025-08-11 06:01:10,999 WARN [cloud.agent.Agent]
(AgentRequest-Handler-1:[]) (logid:) Caught: java.lang.NullPointerException:
Cannot invoke "com.cloud.storage.Storage$StoragePoolType.toString()" because
"type" is null
at
com.cloud.hypervisor.kvm.storage.LibvirtStorageAdaptor.createStoragePool(LibvirtStorageAdaptor.java:736)
at
com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager.createStoragePool(KVMStoragePoolManager.java:393)
at
com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager.getStoragePoolByURI(KVMStoragePoolManager.java:339)
at
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.attachOrDetachISO(LibvirtComputingResource.java:3513)
at
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.detachAndAttachConfigDriveISO(LibvirtComputingResource.java:3492)
at
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtMigrateCommandWrapper.execute(LibvirtMigrateCommandWrapper.java:232)
at
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtMigrateCommandWrapper.execute(LibvirtMigrateCommandWrapper.java:88)
at
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRequestWrapper.execute(LibvirtRequestWrapper.java:78)
at
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeRequest(LibvirtComputingResource.java:1958)
at com.cloud.agent.Agent.processRequest(Agent.java:779)
at com.cloud.agent.Agent$AgentRequestHandler.doTask(Agent.java:1194)
at com.cloud.utils.nio.Task.call(Task.java:83)
at com.cloud.utils.nio.Task.call(Task.java:29)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
2025-08-11 06:01:11,003 DEBUG [cloud.agent.Agent]
(AgentRequest-Handler-1:[]) (logid:) Seq 1-6100688645226770330: { Ans: ,
MgmtId: 32985852150177, via: 1, Ver: v1, Flags: 10,
[{"com.cloud.agent.api.Answer":{"result":"false","details":"java.lang.NullPointerException:
Cannot invoke "com.cloud.storage.Storage$StoragePoolType.toString()" because
"type" is null
at
com.cloud.hypervisor.kvm.storage.LibvirtStorageAdaptor.createStoragePool(LibvirtStorageAdaptor.java:736)
at
com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager.createStoragePool(KVMStoragePoolManager.java:393)
at
com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager.getStoragePoolByURI(KVMStoragePoolManager.java:339)
at
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.attachOrDetachISO(LibvirtComputingResource.java:3513)
at
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.detachAndAttachConfigDriveISO(LibvirtComputingResource.java:3492)
at
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtMigrateCommandWrapper.execute(LibvirtMigrateCommandWrapper.java:232)
at
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtMigrateCommandWrapper.execute(LibvirtMigrateCommandWrapper.java:88)
at
com.cloud.hypervisor.kvm.resource.wrapper.LibvirtRequestWrapper.execute(LibvirtRequestWrapper.java:78)
at
com.cloud.hypervisor.kvm.resource.LibvirtComputingResource.executeRequest(LibvirtComputingResource.java:1958)
at com.cloud.agent.Agent.processRequest(Agent.java:779)
at com.cloud.agent.Agent$AgentRequestHandler.doTask(Agent.java:1194)
at com.cloud.utils.nio.Task.call(Task.java:83)
at com.cloud.utils.nio.Task.call(Task.java:29)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
","wait":"0","bypassHostMaintenance":"false"}}] }
```
Before migrate (first attempt):
```
[root@kvm1 ~]# virsh dumpxml i-2-5-VM | grep iso
<entry name='product'>CloudStack KVM Hypervisor</entry>
<feature policy='require' name='hypervisor'/>
<source file='/mnt/3e0fe9c4-bcad-3a7d-9350-44694b760e74/i-2-5-VM.iso'
index='1'/>
[root@kvm1 ~]#
```
After migrate (first attempt failed):
```
[root@kvm1 ~]# virsh dumpxml i-2-5-VM | grep iso
<entry name='product'>CloudStack KVM Hypervisor</entry>
<feature policy='require' name='hypervisor'/>
[root@kvm1 ~]#
```
After migrate (second attempt success):
```
[root@kvm2 ~]# virsh dumpxml i-2-5-VM | grep iso
<entry name='product'>CloudStack KVM Hypervisor</entry>
<feature policy='require' name='hypervisor'/>
[root@kvm2 ~]#
```
### versions
ACS 4.20.1 / KVM hypervisor / NFS as primary storage
### The steps to reproduce the bug
1. Create a network offering with config drive for user data service
2. Create a network with the above offering
3. Deploy a VM on the above network.
4. Live migrate the VM to another KVM host
### What to do about it?
The Live migration should succeed, along with config drive to the
destination host.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]