Created attachment 588795 [details] logs Description of problem: Livesnapshot fails for vm that was created from template 2012-06-03 10:35:50,535 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.SnapshotVDSCommand] (ajp--0.0.0.0-8009-2) ------- [7c80fb50] START, SnapshotVDSCommand(vdsId = f80ecca4-aa2c-11e1-816c-001a4a23101e, vmId=b5cc226b-5d43-4d2d-a8eb-530cde055127), log id: 331f594e 2012-06-03 10:35:50,545 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.SnapshotVDSCommand] (ajp--0.0.0.0-8009-2) ------- [7c80fb50] FINISH, SnapshotVDSCommand, log id: 331f594e 2012-06-03 10:35:50,550 INFO [org.ovirt.engine.core.vdsbroker.irsbroker.UpdateVMVDSCommand] (ajp--0.0.0.0-8009-2) ------- [7c80fb50] START, UpdateVMVDSCommand(storagePoolId = 7a844083-ce09-4cdf-b5d9-c699657c4b8a, ignoreFailoverLimit = false, compatabilityVersion = null, storageDomainId = 00000000-0000-0000-0000-000000000000, infoDictionary.size = 1), log id: 42ecd273 2012-06-03 10:35:50,570 INFO [org.ovirt.engine.core.vdsbroker.irsbroker.UpdateVMVDSCommand] (ajp--0.0.0.0-8009-2) ------- [7c80fb50] FINISH, UpdateVMVDSCommand, log id: 42ecd273 2012-06-03 10:35:50,572 ERROR [org.ovirt.engine.core.bll.CreateAllSnapshotsFromVmCommand] (ajp--0.0.0.0-8009-2) ------- [7c80fb50] Transaction rolled-back for command: org.ovirt.engine.core.bll.CreateAllSnapshotsFromVmCommand. 2012-06-03 10:35:50,573 INFO [org.ovirt.engine.core.utils.transaction.TransactionSupport] (ajp--0.0.0.0-8009-2) ------- [7c80fb50] transaction rolled back Version-Release number of selected component (if applicable): si5 How reproducible: Always Steps to Reproduce: 1. Create a vm from template and run it. 2. Try to create a livesnapshot for a vm 3. Actual results: livesnapshot fails Expected results: Additional info: tested on iscsi storage
Looks like VM has no "snapshotable" disks - i.e. no disks were taken in snapshot, and it jumped straight to end action. There are a few problems here: 1. No disk snapshot support is shaky and needs to be improved (or blocked). 2. The end action should be changed - either should ignore the live part if no disks sent, or it should not be called but instead just unlock the snapshots and continue. 3. I have no idea why the transaction is failing, probably due to #1. You need to find the cause but it's not clear from the logs (you just see that it gets rolled-back).
Kiril, can you verify that indeed the snapshot you took was of a VM with no snapshotable disks? Thanks.
(In reply to comment #2) > Kiril, can you verify that indeed the snapshot you took was of a VM with no > snapshotable disks? > Thanks. I can not reproduce the scenario, but I have NPE after a snapshot creation finishes. 2012-06-06 11:44:48,766 WARN [org.ovirt.engine.core.vdsbroker.VdsManager] (QuartzScheduler_Worker-96) ------- ResourceManager::refreshVdsRunTimeInfo::Failed to refresh VDS , vds = f22d5710-aa2c-11e1-902c-001a4a23101e : white-vdsg.eng.lab.tlv.redhat.com, error = NullPointerException: , continuing. 2012-06-06 11:44:48,767 ERROR [org.ovirt.engine.core.vdsbroker.VdsManager] (QuartzScheduler_Worker-96) ------- ResourceManager::refreshVdsRunTimeInfo: java.lang.NullPointerException at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.updateVmDevices(VdsUpdateRunTimeInfo.java:939) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.updateVmDevices(VdsUpdateRunTimeInfo.java:921) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.handleVmDeviceChange(VdsUpdateRunTimeInfo.java:910) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.refreshVmStats(VdsUpdateRunTimeInfo.java:861) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.refreshVdsRunTimeInfo(VdsUpdateRunTimeInfo.java:421) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.Refresh(VdsUpdateRunTimeInfo.java:256) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsManager$1.runInTransaction(VdsManager.java:234) [engine-vdsbroker.jar:] at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInSuppressed(TransactionSupport.java:168) [engine-utils.jar:] at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInScope(TransactionSupport.java:107) [engine-utils.jar:] at org.ovirt.engine.core.vdsbroker.VdsManager.OnTimer(VdsManager.java:215) [engine-vdsbroker.jar:] at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source) [:1.6.0_24] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.6.0_24] at java.lang.reflect.Method.invoke(Method.java:616) [rt.jar:1.6.0_24] at org.ovirt.engine.core.utils.timer.JobWrapper.execute(JobWrapper.java:64) [engine-scheduler.jar:] at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [quartz-2.1.2.jar:] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557) [quartz-2.1.2.jar:] Attaching new logs.
Created attachment 589778 [details] engine.log_1
Reproduced the oissue with a regular vm (not from template) 2012-06-11 14:01:55,821 WARN [org.ovirt.engine.core.vdsbroker.VdsManager] (QuartzScheduler_Worker-12) ResourceManager::refreshVdsRunTimeInfo::Failed to refresh VDS , vds = 07babe40-b2d6-11e1-b84d-001a4a231020 : white-vdsg.eng.lab.tlv.redhat.com, error = NullPointerException: , continuing. 2012-06-11 14:01:55,822 ERROR [org.ovirt.engine.core.vdsbroker.VdsManager] (QuartzScheduler_Worker-12) ResourceManager::refreshVdsRunTimeInfo: java.lang.NullPointerException at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.updateVmDevices(VdsUpdateRunTimeInfo.java:939) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.updateVmDevices(VdsUpdateRunTimeInfo.java:921) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.handleVmDeviceChange(VdsUpdateRunTimeInfo.java:910) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.refreshVmStats(VdsUpdateRunTimeInfo.java:861) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.refreshVdsRunTimeInfo(VdsUpdateRunTimeInfo.java:421) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo.Refresh(VdsUpdateRunTimeInfo.java:256) [engine-vdsbroker.jar:] at org.ovirt.engine.core.vdsbroker.VdsManager$1.runInTransaction(VdsManager.java:234) [engine-vdsbroker.jar:] at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInSuppressed(TransactionSupport.java:168) [engine-utils.jar:] at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInScope(TransactionSupport.java:107) [engine-utils.jar:] at org.ovirt.engine.core.vdsbroker.VdsManager.OnTimer(VdsManager.java:215) [engine-vdsbroker.jar:] at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) [:1.6.0_24] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.6.0_24] at java.lang.reflect.Method.invoke(Method.java:616) [rt.jar:1.6.0_24] at org.ovirt.engine.core.utils.timer.JobWrapper.execute(JobWrapper.java:64) [engine-scheduler.jar:] at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [quartz-2.1.2.jar:] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557) [quartz-2.1.2.jar:]
Created attachment 590907 [details] engine.log_2
Uploaded a patch that should have solved this: http://gerrit.ovirt.org/#/c/5256/
wrong status - patch is in gerrit but not merged yet, should have been POST, not MODIFIED. my bad.
patch was merged.
fixed in SI6. Live snapshot can be created both from regular VM and from VM that was created from template.