<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div>hello</div><div>&nbsp; &nbsp; I found if we retore snapshot, memory cannot be restored, I test it with ovirt-4.1.2ˇ˘vdsm-4.17.0 and libvirt-3.0.0,&nbsp;</div><div>and i get some errors in [1],it seems vm not paused in creating snapshot, but self._underlyingCont() called in vm starting,</div><div>so error occurs, then vm is started in libvirt but shutdowned in vdsm, changes in [2], then it works well.</div><div><br></div><div><br></div><div>[1]</div><div>2018-02-12 19:39:23,830+0800 ERROR (vm/d7be0fde) [virt.vm] (vmId='d7be0fde-f9b9-4447-a250-2453482faef9') The vm start process failed (vm:662)<br>Traceback (most recent call last):<br>&nbsp; File "/usr/share/vdsm/virt/vm.py", line 607, in _startUnderlyingVm<br>&nbsp;&nbsp;&nbsp; self._completeIncomingMigration()<br>&nbsp; File "/usr/share/vdsm/virt/vm.py", line 3268, in _completeIncomingMigration<br>&nbsp;&nbsp;&nbsp; self.cont()<br>&nbsp; File "/usr/share/vdsm/virt/vm.py", line 1128, in cont<br>&nbsp;&nbsp;&nbsp; self._underlyingCont()<br>&nbsp; File "/usr/share/vdsm/virt/vm.py", line 3368, in _underlyingCont<br>&nbsp;&nbsp;&nbsp; self._dom.resume()<br>&nbsp; File "/usr/lib/python2.7/dist-packages/vdsm/virt/virdomain.py", line 69, in f<br>&nbsp;&nbsp;&nbsp; ret = attr(*args, **kwargs)<br>&nbsp; File "/usr/lib/python2.7/dist-packages/vdsm/libvirtconnection.py", line 123, in wrapper<br>&nbsp;&nbsp;&nbsp; ret = f(*args, **kwargs)<br>&nbsp; File "/usr/lib/python2.7/dist-packages/vdsm/utils.py", line 926, in wrapper<br>&nbsp;&nbsp;&nbsp; return func(inst, *args, **kwargs)<br>&nbsp; File "/usr/lib/python2.7/dist-packages/libvirt.py", line 1905, in resume<br>&nbsp;&nbsp;&nbsp; if ret == -1: raise libvirtError ('virDomainResume() failed', dom=self)<br>libvirtError: Requested operation is not valid: domain is already running</div><div><br></div><div>[2]</div><div><div>--- a/Linx_Node/node_iso/install_script/py/vdsm/vdsm/virt/vm.py</div><div>+++ b/Linx_Node/node_iso/install_script/py/vdsm/vdsm/virt/vm.py</div><div>@@ -3677,6 +3677,8 @@ class Vm(object):</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else:</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;snapFlags |= libvirt.VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY</div><div>&nbsp;</div><div>+&nbsp; &nbsp; &nbsp; &nbsp; self._underlyingPause()</div><div>+</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# When creating memory snapshot libvirt will pause the vm</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;should_freeze = not (memoryParams or frozen)</div><div>&nbsp;</div><div>@@ -3734,6 +3736,8 @@ class Vm(object):</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if memoryParams:</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;self.cif.teardownVolumePath(memoryVol)</div><div>&nbsp;</div><div>+&nbsp; &nbsp; &nbsp; &nbsp; self._underlyingCont()</div><div>+</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# Returning quiesce to notify the manager whether the guest agent</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# froze and flushed the filesystems or not.</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;quiesce = should_freeze and freezed["status"]["code"] == 0</div></div></div><br><br><span title="neteasefooter"><p>&nbsp;</p></span>