sureshanaparti opened a new issue, #12790:
URL: https://github.com/apache/cloudstack/issues/12790
### problem
VM using custom offering and volumes on PowerFlex storage, failed to start
after revert to VM snapshot. Start failed with the below exception.
```
2026-03-11 11:50:44,403 ERROR [c.c.a.ApiAsyncJobDispatcher]
(API-Job-Executor-116:[ctx-049286e2, job-10405]) (logid:3feed8a7) Unexpected
exception while executing
org.apache.cloudstack.api.command.admin.vm.StartVMCmdByAdmin
java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()"
because the return value of "com.cloud.offering.ServiceOffering.getCpu()" is
null
at
com.cloud.deploy.DeploymentPlanningManagerImpl.planDeployment(DeploymentPlanningManagerImpl.java:314)
at
org.apache.cloudstack.engine.cloud.entity.api.VMEntityManagerImpl.reserveVirtualMachine(VMEntityManagerImpl.java:207)
at
org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityImpl.reserve(VirtualMachineEntityImpl.java:202)
at
com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:5823)
at
com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:5676)
at
com.cloud.vm.UserVmManagerImpl.startVirtualMachine(UserVmManagerImpl.java:3382)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at
org.apache.cloudstack.network.contrail.management.EventUtils$EventInterceptor.invoke(EventUtils.java:109)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at
com.cloud.event.ActionEventInterceptor.invoke(ActionEventInterceptor.java:52)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
at jdk.proxy3/jdk.proxy3.$Proxy219.startVirtualMachine(Unknown Source)
at
org.apache.cloudstack.api.command.user.vm.StartVMCmd.execute(StartVMCmd.java:183)
```
<img width="1444" height="568" alt="Image"
src="https://github.com/user-attachments/assets/89b30efa-5fdb-4055-8f5e-489cefc0deb5"
/>
The custom offering details after removed from _vm_instance_details_ table
during revert operation.
Before Revert to instance snapshot:
```
mysql> SELECT * FROM cloud.vm_instance_details WHERE vm_id = 23;
+-----+-------+------------------------------------+-------+---------+
| id | vm_id | name | value | display |
+-----+-------+------------------------------------+-------+---------+
| 132 | 23 | cpuNumber | 1 | 1 |
| 133 | 23 | cpuOvercommitRatio | 2.0 | 1 |
| 135 | 23 | cpuSpeed | 500 | 1 |
| 134 | 23 | memory | 512 | 1 |
| 136 | 23 | Message.ReservedCapacityFreed.Flag | false | 1 |
+-----+-------+------------------------------------+-------+---------+
5 rows in set (0.00 sec)
```
After Revert to instance snapshot:
```
mysql> SELECT * FROM cloud.vm_instance_details WHERE vm_id = 23;
+-----+-------+-----------------+-----------------------------------------+---------+
| id | vm_id | name | value |
display |
+-----+-------+-----------------+-----------------------------------------+---------+
| 137 | 23 | SnapshotGroupId | 47b8a69a00000002 |
0 |
| 138 | 23 | Vol_34_Snapshot | 8a4ca4560000003d:vmsnap-10-34-1c6c-b24c |
0 |
| 139 | 23 | Vol_35_Snapshot | 8a4ca4570000003e:vmsnap-10-35-1c6c-b24c |
0 |
+-----+-------+-----------------+-----------------------------------------+---------+
3 rows in set (0.00 sec)
```
### versions
ACS 4.22.0 + KVM + PowerFlex storage
### The steps to reproduce the bug
1. Create an instance using custom offering on PowerFlex storage.
2. Take instance snapshot for the instance created in the step 1.
3. Stop the instance.
4. Revert to the instance snapshot created in step 2.
5. Start the instance
### What to do about it?
The instance should start after revert to the instance snapshot.
--
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]