[libvirt] PATCH: Fix infinite loop when QEMU quits at startup

Daniel Veillard veillard at redhat.com
Fri Jan 30 14:26:01 UTC 2009


On Fri, Jan 30, 2009 at 11:37:35AM +0000, Daniel P. Berrange wrote:
> The recent refactoring of the QEMU startup process now reads the monitor
> TTY from the logfile. Unfortunately in this refactoring we lost the check
> for the 'ret == 0' scenario in the read() return value. So if QEMU quits
> at startup, eg  due to missing disk image, we loop forever on read() == 0
> because we hit end-of-file and QEMU has quit. 
> 
> This patch adds back handling for this scenario, and takes care to 
> propagate the contents of the log to the user as an error message
> 
>  # start demo
> libvir: QEMU error : internal error unable to start guest: qemu: could 
>   not open disk image /home/berrange/Fedora-9-i686-Live.iso
> error: Failed to start domain demo
> 
> In addition, there were a couple of other bugs
> 
> 
>  - a memory leak where we set the 'monitorpath' variable, even 
>    though we'd just set it moments before.
> 
>  - a missing check for whether the driver VNC password was present
>    when initializing passwords at VM startupo
> 
>  - missing initialization of the monitor_watch field, and missing
>    checking for whether the watch was set before removing it.
> 
>  - a gratuitous LOG_INFO when shutting down any VM, which could
>    just be LOG_DEBUG.

  Patch looks reasonnable to me, +1

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list