Hello Eric,
it has been quite a while since we have looked at this :). I'm
revisiting this problem and I find that it still exists. Here is an
archive link of our previous discussions on this:
https://www.redhat.com/archives/libvir-list/2014-July/thread.html#00809
Basically, when I do a migration and run out of disk space I do not see
a meaningful error message without this patch. Early on in our previous
discussions you asked me how I had gotten through the
qemuDomainSaveMemory function without hitting this code:
if (virFileWrapperFdClose(wrapperFd) < 0)
goto cleanup;
If qemuMigrationToFile fails we go directly to cleanup and do not pass
through the virFileWrapperFdClose call. For reference:
/* Perform the migration */
if (qemuMigrationToFile(driver, vm, fd, offset, path,
qemuCompressProgramName(compressed),
bypassSecurityDriver,
asyncJob) < 0)
goto cleanup;
This is why my patch adds the additional call to virFileWrapperFdClose.
Perhaps, if we cannot tolerate calling it twice, I can adjust the code
such that we only call it once.
For some odd reason, you seem to see messages that I do not (take look
at my final message in the thread linked above). I was not able to see
your "goodbye world \n" message.
I would be interested to know what you see when you run my test case
without my patch. If you feel like trying it just create a 50MB disk
image and loop mount it:
mount -o loop /usr/local/var/lib/libvirt/qemu/save.img
/usr/local/var/lib/libvirt/qemu/save
Then:
virsh managedsave guestname
And report what you saw on the command line and the libvirtd console
and/or log depending on how you run the daemon. I suspect (since you saw
"goodbye world") that you would also see the out of disk space message
ok. If I'm correct, then the question becomes... why don't I see it too? :)
Thanks for your time.
--
-- Jason J. Herne (jjherne(a)linux.vnet.ibm.com)