[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] xen-unstable qemu-upstream: libxl: error: libxl_qmp.c:440:qmp_next: timeout, libxl_qmp.c:705:libxl__qmp_initialize: Failed to connect to QMP
Hi Stefano, When trying to start a hvm quest with xen-unstable and qemu-upstream, it ends up stuck: xc: info: VIRTUAL MEMORY ARRANGEMENT: Loader: 0000000000100000->000000000019c864 Modules: 0000000000000000->0000000000000000 TOTAL: 0000000000000000->000000002f800000 ENTRY ADDRESS: 0000000000100000 xc: info: PHYSICAL MEMORY ALLOCATION: 4KB PAGES: 0x0000000000000200 2MB PAGES: 0x000000000000017b 1GB PAGES: 0x0000000000000000 libxl: error: libxl_qmp.c:440:qmp_next: timeout libxl: error: libxl_qmp.c:705:libxl__qmp_initialize: Failed to connect to QMP Bisecting pointed to this commit: commit 0ca5aa4f4c4a8bcc73988dd52a536241d35e5223 Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Wed Apr 10 15:23:27 2013 +0200 qemu-char: another io_add_watch_poll fix After attaching the source, we have to remove the reference we hold to it, because we do not hold anymore a pointer to the source. If we do not do this, removing the source will not finalize it and will not drop the "real" I/O watch source. This showed up when backporting the new flow control patches to older versions of QEMU that still used select. The whole select then failed with EBADF (poll instead will reporting POLLNVAL on a single pollfd) and QEMU froze. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Message-id: 1365600207-21685-1-git-send-email-pbonzini@xxxxxxxxxx Signed-off-by: Anthony Liguori <aliguori@xxxxxxxxxx> Which changed: --- a/qemu-char.c +++ b/qemu-char.c @@ -663,6 +663,7 @@ static guint io_add_watch_poll(GIOChannel *channel, gpointer user_data) { IOWatchPoll *iwp; + int tag; iwp = (IOWatchPoll *) g_source_new(&io_watch_poll_funcs, sizeof(IOWatchPoll)); iwp->fd_can_read = fd_can_read; @@ -671,7 +672,9 @@ static guint io_add_watch_poll(GIOChannel *channel, iwp->fd_read = (GSourceFunc) fd_read; iwp->src = NULL; - return g_source_attach(&iwp->parent, NULL); + tag = g_source_attach(&iwp->parent, NULL); + g_source_unref(&iwp->parent); + return tag; } #ifndef _WIN32 Any thing that springs to mind ? -- Sander _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |