From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51978) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UN3XI-00038k-1s for qemu-devel@nongnu.org; Tue, 02 Apr 2013 11:54:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UN3XG-000651-TK for qemu-devel@nongnu.org; Tue, 02 Apr 2013 11:54:12 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47064) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UN3XG-00064v-Kq for qemu-devel@nongnu.org; Tue, 02 Apr 2013 11:54:10 -0400 Date: Tue, 2 Apr 2013 11:54:08 -0400 From: Luiz Capitulino Message-ID: <20130402115408.321a21df@redhat.com> In-Reply-To: <87bo9x53ty.fsf@codemonkey.ws> References: <1364409987-23742-1-git-send-email-lcapitulino@redhat.com> <1364409987-23742-7-git-send-email-lcapitulino@redhat.com> <87fvzai7qx.fsf@codemonkey.ws> <20130402103701.4c1cce5d@redhat.com> <20130402104547.1bf2cfc6@redhat.com> <87bo9x53ty.fsf@codemonkey.ws> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PULL 6/6] Monitor: Make output buffer dynamic List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel@nongnu.org On Tue, 02 Apr 2013 10:50:49 -0500 Anthony Liguori wrote: > Luiz Capitulino writes: > > > On Tue, 2 Apr 2013 10:37:01 -0400 > > Luiz Capitulino wrote: > > > >> On Mon, 01 Apr 2013 10:35:34 -0500 > >> Anthony Liguori wrote: > >> > >> > Luiz Capitulino 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 > >> > > >> > 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.