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

Re: [Xen-devel] segv in osevent_release_nexus with libxl backend to libvirt



On Wed, 2014-11-26 at 17:38 +0000, Ian Jackson wrote:
> Ian Campbell writes ("Re: [Xen-devel] segv in osevent_release_nexus with 
> libxl backend to libvirt"):
> > I don't know if this helps but on the 3 occasions I've just looked at
> > the ev passed to libxl__ev_fd_deregister contains an fd which
> > corresponds to a still open handle on /dev/xen/evtchn.
> 
> I see what is going on, I think.  The rules in libxl_event.h about
> when one can call libxl_event_register_callbacks are (a) impossibly
> lax and (b) not implemented even as far as possible.  The crash is due
> to the evtchn fd having been set up during libxl initialisation (while
> hooks==0) and therefore not having a `nexus', but being deregistered
> later.
> 
> AFAICT libvirt doesn't (I think) depend on anything which is
> particularly difficult to implement.  It seems to call
> libxl_event_register_callbacks in a relatively quiescent state.
> 
> I have prepared a set of patches which may help.  They are at
> xenbits.xen.org:ext/xen.git#for-ijc.

AKA git://xenbits.xen.org/people/iwj/xen.git for those of us without
your shell account ;-)

I tried this but on destroy with libvirt I get:
        libvirtd: libxl.c:168: libxl_ctx_free: Assertion 
`!libxl__ev_fd_isregistered(&ctx->sigchld_selfpipe_efd)' failed.
        
        Program received signal SIGABRT, Aborted.
        [Switching to Thread 0xb57f9420 (LWP 7188)]
        0xb6ab7f96 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
        (gdb) bt
        #0  0xb6ab7f96 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
        #1  0xb6ac5f8a in raise () from /lib/arm-linux-gnueabihf/libc.so.6
        #2  0xb6ac8428 in abort () from /lib/arm-linux-gnueabihf/libc.so.6
        #3  0xb6ac101e in __assert_fail ()
           from /lib/arm-linux-gnueabihf/libc.so.6
        #4  0xb16a48f4 in libxl_ctx_free (ctx=0xb6b7bbec) at libxl.c:168
        #5  0xb171814e in libxlDomainObjPrivateDispose ()
           from 
/opt/libvirt/lib/libvirt/connection-driver/libvirt_driver_libxl.so
        #6  0xb6c69176 in virObjectUnref ()
           from /opt/libvirt/lib/libvirt.so.0
        #7  0xb17181d2 in libxlDomainObjPrivateFree ()
           from 
/opt/libvirt/lib/libvirt/connection-driver/libvirt_driver_libxl.so
        #8  0xb6c9c0da in virDomainObjDispose ()
           from /opt/libvirt/lib/libvirt.so.0
        #9  0xb6c69176 in virObjectUnref ()
           from /opt/libvirt/lib/libvirt.so.0
        #10 0xb6c9ca26 in virDomainObjListRemove ()
           from /opt/libvirt/lib/libvirt.so.0
        #11 0xb171c548 in libxlDomainDestroyFlags ()

and similarly on create with xl I see:

        xl: libxl.c:168: libxl_ctx_free: Assertion 
`!libxl__ev_fd_isregistered(&ctx->sigchld_selfpipe_efd)' failed.
        
        Program received signal SIGABRT, Aborted.
        0xb6e10f96 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
        (gdb) bt
        #0  0xb6e10f96 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
        #1  0xb6e1ef8a in raise () from /lib/arm-linux-gnueabihf/libc.so.6
        #2  0xb6e21428 in abort () from /lib/arm-linux-gnueabihf/libc.so.6
        #3  0xb6e1a01e in __assert_fail () from 
/lib/arm-linux-gnueabihf/libc.so.6
        #4  0xb6f628f4 in libxl_ctx_free (ctx=0xb6ed4bec) at libxl.c:168
        #5  0x0000daa0 in xl_ctx_free () at xl.c:283
        #6  0xb6e22426 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
        #7  0xb6e10cfe in __libc_start_main () from 
/lib/arm-linux-gnueabihf/libc.so.6
        #8  0x0000da26 in _start ()
        
Ian.



_______________________________________________
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®.