Bug 1063979

Summary: vdsm: live snapshot is reported with unsupported qemu although snapshot appears to be created
Product: [Retired] oVirt Reporter: Dafna Ron <dron>
Component: vdsmAssignee: Federico Simoncelli <fsimonce>
Status: CLOSED DUPLICATE QA Contact: Aharon Canan <acanan>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: abaron, acathrow, bazulay, gklein, iheim, mgoldboi, yeylon
Target Milestone: ---Keywords: Triaged
Target Release: 3.4.0   
Hardware: x86_64   
OS: Linux   
Whiteboard: storage
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-02-11 21:32:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Storage RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
logs none

Description Dafna Ron 2014-02-11 17:42:21 UTC
Created attachment 861912 [details]
logs

Description of problem:

when we take a live snapshot libvirt is reporting that qemu is not supporting live snapshot 

Version-Release number of selected component (if applicable):

[root@orange-vdse ~]# rpm -qa |grep qemu
qemu-kvm-tools-0.12.1.2-2.415.el6_5.3.x86_64
qemu-kvm-0.12.1.2-2.415.el6_5.3.x86_64
gpxe-roms-qemu-0.9.7-6.10.el6.noarch
qemu-img-0.12.1.2-2.415.el6_5.3.x86_64
[root@orange-vdse ~]# rpm -qa |grep vdsm 
vdsm-python-zombiereaper-4.14.2-0.el6.noarch
vdsm-4.14.2-0.el6.x86_64
vdsm-python-4.14.2-0.el6.x86_64
vdsm-cli-4.14.2-0.el6.noarch
vdsm-xmlrpc-4.14.2-0.el6.noarch
[root@orange-vdse ~]# rpm -qa |grep libvirt
libvirt-client-0.10.2-29.el6_5.3.x86_64
libvirt-0.10.2-29.el6_5.3.x86_64
libvirt-lock-sanlock-0.10.2-29.el6_5.3.x86_64
libvirt-python-0.10.2-29.el6_5.3.x86_64

How reproducible:

100%

Steps to Reproduce:
1. run a vm
2. create a live snapshot
3.

Actual results:

we get an error that live snapshot failed but the snapshot appear to have been created 

Expected results:

if snapshot is created we should not report as failed. 
in any case, the qemu should support live snapshots.

Additional info:
I suspect that this is related to bugs opened on vms pausing during live migration. so qemu not doing live migration is now reported but we pause the vm and complete the snapshot as we can see here: 

2014-02-11 11:59:05,088 INFO  [org.ovirt.engine.core.vdsbroker.VdsUpdateRunTimeInfo] (DefaultQuartzScheduler_Worker-75) VM Dafna1 573508dd-34cd-4142-93c4-58f764d43b80 moved from Up --> Paused
2014-02-11 11:59:06,364 ERROR [org.ovirt.engine.core.vdsbroker.vdsbroker.SnapshotVDSCommand] (org.ovirt.thread.pool-6-thread-20) Failed in SnapshotVDS method
2014-02-11 11:59:06,365 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.SnapshotVDSCommand] (org.ovirt.thread.pool-6-thread-20) Command org.ovirt.engine.core.vdsbroker.vdsbroker.SnapshotVDSCommand return value 
 StatusOnlyReturnForXmlRpc [mStatus=StatusForXmlRpc [mCode=48, mMessage=Snapshot failed]]
2014-02-11 11:59:06,365 INFO  [org.ovirt.engine.core.vdsbroker.vdsbroker.SnapshotVDSCommand] (org.ovirt.thread.pool-6-thread-20) HostName = orange-vdse


Thread-3783::ERROR::2014-02-11 18:59:05,558::vm::3981::vm.Vm::(snapshot) vmId=`573508dd-34cd-4142-93c4-58f764d43b80`::Unable to take snapshot
Traceback (most recent call last):
  File "/usr/share/vdsm/vm.py", line 3979, in snapshot
    self._dom.snapshotCreateXML(snapxml, snapFlags)
  File "/usr/share/vdsm/vm.py", line 855, in f
    ret = attr(*args, **kwargs)
  File "/usr/lib64/python2.6/site-packages/vdsm/libvirtconnection.py", line 92, in wrapper
    ret = f(*args, **kwargs)
  File "/usr/lib64/python2.6/site-packages/libvirt.py", line 1636, in snapshotCreateXML
    if ret is None:raise libvirtError('virDomainSnapshotCreateXML() failed', dom=self)
libvirtError: Operation not supported: live disk snapshot not supported with this QEMU binary
Thread-3783::INFO::2014-02-11 18:59:05,560::logUtils::44::dispatcher::(wrapper) Run and protect: teardownImage(sdUUID='8c649966-0b58-40ae-a291-e5bdd789107e', spUUID='53771658-e350-42bc-b505-22d11dca7678', imgUUID='d7298c20-c740-47f8-861b
-5d795ca3747b', volUUID=None)
Thread-3783::INFO::2014-02-11 18:59:05,561::logUtils::47::dispatcher::(wrapper) Run and protect: teardownImage, Return response: None

libvirt: 
2014-02-11 16:59:05.464+0000: 5350: error : qemuDomainSnapshotCreateDiskActive:11697 : Operation not supported: live disk snapshot not supported with this QEMU binary

engine log:

2014-02-11 11:53:21,475 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (org.ovirt.thread.pool-6-thread-32) Correlation ID: 320385c6, Job ID: d8cdea6e-1d5e-4ce5-bb7e-7e7924a95512, Call Stack: org.ovirt.engine.core.common.errors.VdcBLLException: VdcBLLException: org.ovirt.engine.core.vdsbroker.vdsbroker.VDSErrorException: VDSGenericException: VDSErrorException: Failed to SnapshotVDS, error = Snapshot failed, code = 48 (Failed with error SNAPSHOT_FAILED and code 48)
        at org.ovirt.engine.core.bll.VdsHandler.handleVdsResult(VdsHandler.java:116)
        at org.ovirt.engine.core.bll.VDSBrokerFrontendImpl.RunVdsCommand(VDSBrokerFrontendImpl.java:33)
        at org.ovirt.engine.core.bll.CommandBase.runVdsCommand(CommandBase.java:1971)
        at org.ovirt.engine.core.bll.CreateAllSnapshotsFromVmCommand$2.runInTransaction(CreateAllSnapshotsFromVmCommand.java:354)
        at org.ovirt.engine.core.bll.CreateAllSnapshotsFromVmCommand$2.runInTransaction(CreateAllSnapshotsFromVmCommand.java:351)
        at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInSuppressed(TransactionSupport.java:174)
        at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInScope(TransactionSupport.java:116)
        at org.ovirt.engine.core.bll.CreateAllSnapshotsFromVmCommand.performLiveSnapshot(CreateAllSnapshotsFromVmCommand.java:351)
        at org.ovirt.engine.core.bll.CreateAllSnapshotsFromVmCommand.endVmCommand(CreateAllSnapshotsFromVmCommand.java:273)
        at org.ovirt.engine.core.bll.VmCommand.endSuccessfully(VmCommand.java:304)
        at org.ovirt.engine.core.bll.CommandBase.internalEndSuccessfully(CommandBase.java:614)
        at org.ovirt.engine.core.bll.CommandBase.endActionInTransactionScope(CommandBase.java:560)
        at org.ovirt.engine.core.bll.CommandBase.runInTransaction(CommandBase.java:1886)
        at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInNewTransaction(TransactionSupport.java:210)
        at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInRequired(TransactionSupport.java:149)
        at org.ovirt.engine.core.utils.transaction.TransactionSupport.executeInScope(TransactionSupport.java:118)
        at org.ovirt.engine.core.bll.CommandBase.endAction(CommandBase.java:492)
        at org.ovirt.engine.core.bll.Backend.endAction(Backend.java:446)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72)
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
        at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:374)
        at org.ovirt.engine.core.bll.interceptors.ThreadLocalSessionCleanerInterceptor.injectWebContextToThreadLocal(ThreadLocalSessionCleanerInterceptor.java:13)
        at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptorFactory$ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptorFactory.java:123)
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
        at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
        at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36)
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
        at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
        at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
        at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
        at org.jboss.as.ejb3.component.singleton.SingletonComponentInstanceAssociationInterceptor.processInvocation(SingletonComponentInstanceAssociationInterceptor.java:53)
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
        at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:211)
        at org.jboss.as.ejb3.tx.CMTTxInterceptor.supports(CMTTxInterceptor.java:363)
        at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:194)
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
        at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
:

Comment 1 Federico Simoncelli 2014-02-11 21:32:06 UTC

*** This bug has been marked as a duplicate of bug 1009100 ***