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]

Reply via email to