|
[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 15:40 +0000, Ian Campbell wrote:
> (adding xen-devel which I forgot first time around)
>
> On Wed, 2014-11-26 at 15:21 +0000, Ian Jackson wrote:
> > Ian Campbell writes ("segv in osevent_release_nexus with libxl backend to
> > libvirt"):
> > > I'm seeing quite a few of these when shutting down domains:
> > ...
> > > This is on ARM but I don't think this appears to be arch specific at
> > > first glance. The bit from virObjectUnref->SEGV appears to be the same
> > > each time, but the leadin can be different:
> > ...
> > > Perhaps that's just an artefact of the reference counting dropping to to
> > > zero in a different order not really relevant.
> >
> > Having looked at this, I think that this is because libxl_ctx_free is
> > being reentered on the same ctx.
> >
> > Below is a tiny patch to libxl which ought to crash on this earlier.
> > Ian C, can you try it ? If this catches anything it will probably
> > show a path in libvirt where a libxl call is made without taking a ref
> > on the vm object.
>
> With this I am seeing:
> Program received signal SIGSEGV, Segmentation fault.
> 0xb16d2fd8 in osevent_release_nexus (gc=0xbefff51c,
> nexi_idle=0x2a09701c, nexus=0x0) at libxl_event.c:119
> 119 libxl_event.c: No such file or directory.
> (gdb) bt
> #0 0xb16d2fd8 in osevent_release_nexus (gc=0xbefff51c,
> nexi_idle=0x2a09701c, nexus=0x0) at libxl_event.c:119
> #1 0xb16d3b14 in osevent_hook_pre_release (nexus=0x2a097074,
> nexi_idle=<optimized out>, ev=0x2a097060, gc=0xbefff51c) at libxl_event.c:149
> #2 libxl__ev_fd_deregister (gc=0xbefff51c, ev=0x2a097060) at
> libxl_event.c:231
> #3 0xb16a4858 in libxl_ctx_free (ctx=0x2a096fa8) at libxl.c:168
> #4 0xb171814e in libxlDomainObjPrivateDispose () from
> /opt/libvirt/lib/libvirt/connection-driver/libvirt_driver_libxl.so
> #5 0xb6c69176 in virObjectUnref () from /opt/libvirt/lib/libvirt.so.0
> #6 0xb1717696 in libxlDomainObjTimerEventHookInfoFree () from
> /opt/libvirt/lib/libvirt/connection-driver/libvirt_driver_libxl.so
> #7 0xb6c3eae4 in virEventPollCleanupTimeouts () from
> /opt/libvirt/lib/libvirt.so.0
> #8 0xb6c3f0f2 in virEventPollRunOnce () from
> /opt/libvirt/lib/libvirt.so.0
> #9 0xb6c3d2fc in virEventRunDefaultImpl () from
> /opt/libvirt/lib/libvirt.so.0
> #10 0x2a05495a in virNetServerRun ()
> #11 0x2a01297c in main ()
>
>
> I don't think this is what you were hoping for :-/
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.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |