Red Hat Bugzilla – Bug 875623
Cannot run VM that was created and updated with Payload via REST API
Last modified: 2015-09-22 09:09 EDT
Description of problem:
The problem is that VMs failed to run in case:
- VM-one have payload CDROM - can run
- VM-two have payload CDROM - Fail to run
Steps to Reproduce:
1. Create 2 VM via rest API [create XMLs attached]
2. update both VMs with payload cdrom [XML attached]
3. from GUI start both VM
Vm-two Fails to start
Both VMs starting
Created attachment 643309 [details]
XMLs for RESTAPI
Created attachment 643310 [details]
Cannot reproduce the error...
Tested with the provided payload xml in the first attachment - note that it cannot be the same hash because it calculate by the content and the xml you provides is different (one have 'by2' and the other have 'vm2')
Also tested two VM with the same payload content, both are running.
Tareq, is there other info you can provide?
Also, the engine log is not idicating that the error was due to the same hash, how did you com to that conclusion?
It does show that you have an error while starting the VM:
XmlRpcExtensionException: Null values aren't supported, if isEnabledForExtensions() == false
But it looks more like arguments error...
Can you reproduce its?
Can you provide the VDSM log as well and point to the line that cause the error (in both logs VDSM and Engine)
It is reproducible for me as following:
1. Create VM-1 via RESTapi - POST
2. Update VM-1 with cdrom payload- PUT
3. Start VM from UI -- OK
4. Create Vm-1 - POST
5. Update Vm-2 with cdrom payload - PUT
6. start Vm-2 - RESULT: FAIL
LOG from engine:
2012-11-19 00:26:57,458 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerCommand] (ajp-/127.0.0.1:8702-5) [157b767b] XML RPC error in command CreateVDS ( HostName = monique-vds0 ), the error was: java.util.concurrent.ExecutionException: java.lang.reflect.InvocationTargetException, XmlRpcExtensionException: Null values aren't supported, if isEnabledForExtensions() == false
2012-11-19 00:26:57,459 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.CreateVDSCommand] (ajp-/127.0.0.1:8702-5) [157b767b] FINISH, CreateVDSCommand, log id: 21e37449
2012-11-19 00:26:57,459 ERROR [org.ovirt.engine.core.vdsbroker.CreateVmVDSCommand] (ajp-/127.0.0.1:8702-5) [157b767b] VDS::create Failed creating vm cdrom-update1 in vds = 2f9b9610-316f-11e2-a9f5-001a4a1697ca : monique-vds0 error = org.ovirt.engine.core.vdsbroker.vdsbroker.VDSNetworkException: VDSNetworkException:
2012-11-19 00:26:57,459 INFO [org.ovirt.engine.core.vdsbroker.CreateVmVDSCommand] (ajp-/127.0.0.1:8702-5) [157b767b] FINISH, CreateVmVDSCommand, return: Down, log id: 7f91f1c9
2012-11-19 00:26:57,459 ERROR [org.ovirt.engine.core.bll.RunVmOnceCommand] (ajp-/127.0.0.1:8702-5) [157b767b] Command org.ovirt.engine.core.bll.RunVmOnceCommand throw Vdc Bll exception. With error message VdcBLLException: null
2012-11-19 00:26:57,465 ERROR [org.ovirt.engine.core.bll.RunVmOnceCommand] (ajp-/127.0.0.1:8702-5) [157b767b] Transaction rolled-back for command: org.ovirt.engine.core.bll.RunVmOnceCommand.
2012-11-19 00:26:57,534 ERROR [org.ovirt.engine.api.restapi.resource.AbstractBackendResource] (ajp-/127.0.0.1:8702-5) Operation Failed: [Network error during communication with the Host.]
2012-11-19 00:26:57,536 INFO [org.ovirt.engine.core.bll.LogoutUserCommand] (ajp-/127.0.0.1:8702-5) [fd66c3] Running command: LogoutUserCommand internal: false.
(In reply to comment #7)
Does it happened without the payload, ie creating two VMs from REST and running them?
Can you attach the VDSM log as well?
yes, i can create 2 vms with no update and run them.
Created attachment 647673 [details]
old yesterday vdsm
Created attachment 647674 [details]
posted at: http://gerrit.ovirt.org/#/c/9327/
The actual bug is creating a VM via REST API,
without starting the VM - now adding (buy updating) Payload to the VM, the VM cannot run.
If we do start the VM prior to adding Payload and then adding Payload and rerunning the VM will run as expected.
The bug is setting the Path value in spec-params to NULL which the XmlRpcStruct cannot handle - it must be empty string.
The Path is the CDROM path and not related to the Payload.
merged at: http://gerrit.ovirt.org/gitweb?p=ovirt-engine.git;a=commit;h=f809bd27d15835e42a8e2b7a1a4687dc674da2a0
*** Bug 875720 has been marked as a duplicate of this bug. ***
both vms are created and started successfully and have payloads.
3.2 has been released