[libvirt] [PATCH 3/3] Manually kill gzip if restore fails before starting qemu

Daniel P. Berrange berrange at redhat.com
Tue Jan 25 17:47:23 UTC 2011


On Tue, Jan 25, 2011 at 04:24:20AM -0500, Laine Stump wrote:
> If a guest image is saved in compressed format, and the restore fails
> in some way after the intermediate process used to uncompress the
> image has been started, but before qemu has been started to hook up to
> the uncompressor, libvirt will endlessly wait for the uncompressor to
> finish, but it never will because it's still waiting to have something
> hooked up to drain its output.
> 
> The solution is to manually send a SIGTERM to the compressor process
> before calling waitpid on it (only if the restore has failed, of
> course).

Are we leaking a file descriptor here then ?  I would think
it would get EPIPE or EIO or an end-of-file if QEMU didn't
start up and automatically exit. That we need to kill it
seems odd (though a worthy extra measure once we're verified
that all FDs are closed properly).

Daniel




More information about the libvir-list mailing list