On Mon, 2011-11-21 at 12:11 +0100, Gianluca Cecchi wrote: > On Fri, Nov 18, 2011 at 7:00 PM, Adam Jackson wrote: > > > If you debuginfo-install gnome-shell, attach with gdb instead of sending > > SIGHUP, and run 'thread apply all backtrace', what do you get? > > As MJ whould have said... This is it ... ;-) The interesting part seems to be: Thread 1 (Thread 0x7fbf4aa8c9c0 (LWP 1609)): #0 0x0000003cb7ee6443 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x0000003cbc208ba2 in ?? () from /usr/lib64/libxcb.so.1 #2 0x0000003cbc2090ff in ?? () from /usr/lib64/libxcb.so.1 #3 0x0000003cbc209184 in xcb_writev () from /usr/lib64/libxcb.so.1 #4 0x0000003cbc6456e7 in _XSend (dpy=0xb47a30, data=<optimized out>, size=<optimized out>) at xcb_io.c:436 #5 0x0000003cbc639d55 in SendZImage (dest_scanline_pad=0, dest_bits_per_pixel=32, req_yoffset=<optimized out>, req_xoffset=0, image=0x7fffe21a7240, req=<optimized out>, dpy=0xb47a30) at PutImage.c:802 This is showing gnome-shell trying to write an image to the X server, but blocking because the socket to the X server does not appear to be ready for writing. So there's (at least) three things that could be going wrong here, from probably most to least likely: 1) the write queue to the X server really might be blocked 2) libxcb could have a logic bug that's getting stuck here 3) the kernel might have a bug in poll() #1 typically only happens in two cases: either the X server is stuck away from the dispatch loop, or it's explicitly ignoring you because there's a grab in process. In the former case SIGHUP wouldn't help, simply reloading the shell won't un-stick the X server. But in the latter case, it might; if the grab is from one of the shell's other threads, then closing all of the shell's display connections would reset the grab. So my next intuition would be to gdb the X server and see what's up. If you find it waiting patiently on a call to select(), then the second case is more likely, and 'print AllClients' should show you an fd_set with only one bit set. - ajax
Attachment:
signature.asc
Description: This is a digitally signed message part
-- test mailing list test@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe: https://admin.fedoraproject.org/mailman/listinfo/test