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

Re: [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



On Tue, 16 Apr 2013, Sander Eikelenboom wrote:
> 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 ?

Nope, sorry.
Given the commit that your bisection identified and the error message,
it's clear that it's a QMP connection issue from libxl. I would start
looking in libxl_qmp.c.
Maybe Anthony (CC'ed) has some ideas.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.