[libvirt] Problem in handling fast prints from QEMU to stderr

Daniel P. Berrange berrange at redhat.com
Thu Nov 26 11:51:48 UTC 2009

On Wed, Nov 25, 2009 at 06:49:24PM +0200, Saul Tamari wrote:
> Hi,
> I think I spotted a bug in the way libvirtd handles stderr output from QEMU VMs.
> When starting a VM and QEMU outputs too much output data to stderr
> (during a given time period), libvirtd will fail and report the
> following error to /var/log/messages:
> libvirtd: 13:44:40.695: error : internal error Out of space while
> reading console log output
> I looked at the libvirt code a bit and it seems like the
> stderr-handling code (I think its in qemudReadLogOutput()) is
> time-dependent and if a 4K buffer overflows it will stop running this
> VM.
> As a workaround I added some usleep(250000) near the fprintf() calls
> (inside QEMU) and I now manage to get the VM running.
> Is this the way libvirtd is supposed to behave?

We only look at stdout to find the path for the PTY based char devices.
This is the first thing QEMU prints out to stderr when operating normally
and easily fits in 4K.  So the real question is why is your QEMU binary
spewing so much junk to stdout/stderr before the PTY paths ?  Is there
anything of interest in /var/log/libvirt/qemu/$GUESTNAME.log

|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

More information about the libvir-list mailing list