qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PULL 6/6] Monitor: Make output buffer dynamic


From: Luiz Capitulino
Subject: Re: [Qemu-devel] [PULL 6/6] Monitor: Make output buffer dynamic
Date: Tue, 2 Apr 2013 11:54:08 -0400

On Tue, 02 Apr 2013 10:50:49 -0500
Anthony Liguori <address@hidden> wrote:

> Luiz Capitulino <address@hidden> writes:
> 
> > On Tue, 2 Apr 2013 10:37:01 -0400
> > Luiz Capitulino <address@hidden> wrote:
> >
> >> On Mon, 01 Apr 2013 10:35:34 -0500
> >> Anthony Liguori <address@hidden> wrote:
> >> 
> >> > Luiz Capitulino <address@hidden> writes:
> >> > 
> >> > > Commit f628926bb423fa8a7e0b114511400ea9df38b76a changed monitor_flush()
> >> > > to retry on qemu_chr_fe_write() errors. However, the Monitor's output
> >> > > buffer can keep growing while the retry is not issued and this can
> >> > > cause the buffer to overflow.
> >> > >
> >> > > To reproduce this issue, just start qemu and type on the Monitor:
> >> > >
> >> > > (qemu) ?
> >> > >
> >> > > This will cause the assertion to trig.
> >> > >
> >> > > To fix this problem this commit makes the Monitor buffer dynamic,
> >> > > which means that it can grow as much as needed.
> >> > >
> >> > > Signed-off-by: Luiz Capitulino <address@hidden>
> >> > 
> >> > This breaks hotplug according to git bisect.  The test output is:
> >> 
> >> I'm trying to reproduce this w/o qemu-test as you suggested on irc, but
> >> what I'm getting is:
> >> 
> >> # ./qemu-qmp -enable-kvm -qmp unix:./qmp-sock,server,nowait -monitor stdio
> >> QEMU 1.4.50 monitor - type 'help' for more information
> >> (qemu) device_add virtio-blk-pci,drive=hd0
> >> Property 'virtio-blk-pci.drive' can't find value 'hd0'
> >> **
> >> ERROR:/home/lcapitulino/work/src/upstream/qmp-unstable/qom/object.c:1003:object_get_canonical_path:
> >>  assertion failed: (obj->parent != NULL)
> >> 
> >> Also happens on master, so I'll bisect that one first...
> >
> > I was obviously missing a drive_add first, but the assertion is a bug
> > anyway.
> 
> I've got a patch waiting to be pushed that fixes the assert.

Thanks. The monitor bug you got happens because qmp_human_monitor_command()
doesn't initialize the dynamic buffer. I'll respin the series.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]