Deadlock on attempting to reveal launcher

Bug #946954 reported by Chris Halse Rogers
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
xorg-server (Ubuntu)
Fix Released
Critical
Chris Halse Rogers

Bug Description

Touching the edge of the screen (to reveal the launcher) will sometimes freeze the X server.

If you get a backtrace from the server, it'll look something like this:
********************************************************************************
#0 0x00007fa37cef689c in __lll_lock_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
#1 0x00007fa37cef2065 in _L_lock_858 () from /lib/x86_64-linux-gnu/libpthread.so.0
#2 0x00007fa37cef1eba in pthread_mutex_lock () from /lib/x86_64-linux-gnu/libpthread.so.0
#3 0x00007fa379d6c121 in ?? () from /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1
#4 0x00007fa379f8c502 in ?? () from /usr/lib/xorg/modules/drivers/intel_drv.so
#5 0x00007fa37dc14e54 in _CallCallbacks ()
#6 0x00007fa37dd4d844 in WriteToClient ()
#7 0x00007fa37dc1a38a in WriteEventsToClient ()
#8 0x00007fa37dc9d601 in ?? ()
#9 0x00007fa37dc9f54f in ?? ()
#10 0x00007fa37dd35bb0 in miPointerSetPosition ()
#11 0x00007fa37dc23fb5 in ?? ()
#12 0x00007fa37dc24d21 in ?? ()
#13 0x00007fa37dc26073 in GetPointerEvents ()
#14 0x00007fa37dc264cd in QueuePointerEvents ()
#15 0x00007fa377a6dd88 in ?? () from /usr/lib/xorg/modules/input/evdev_drv.so
#16 0x00007fa37dc4ccc7 in ?? ()
#17 0x00007fa37dc72bba in ?? ()
#18 <signal handler called>
#19 0x00007fa37dd4e690 in ?? ()
#20 <signal handler called>
#21 0x00007fa37be46fb7 in ioctl () from /lib/x86_64-linux-gnu/libc.so.6
#22 0x00007fa37a3db158 in drmIoctl () from /usr/lib/x86_64-linux-gnu/libdrm.so.2
#23 0x00007fa379d6c1a3 in ?? () from /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1
#24 0x00007fa379f8c502 in ?? () from /usr/lib/xorg/modules/drivers/intel_drv.so
#25 0x00007fa37dc14e54 in _CallCallbacks ()
#26 0x00007fa37dd4d844 in WriteToClient ()
#27 0x00007fa37dc1a38a in WriteEventsToClient ()
#28 0x00007fa37dc1a4f6 in TryClientEvents ()
#29 0x00007fa37dc1dd12 in ?? ()
#30 0x00007fa37dc1df4b in DeliverEventsToWindow ()
#31 0x00007fa37dc1ee93 in DeliverEvents ()
#32 0x00007fa37dc3bdb2 in MapWindow ()
#33 0x00007fa37dc3d6a0 in ReparentWindow ()
#34 0x00007fa37dc3d74b in HandleSaveSet ()
#35 0x00007fa37dc31feb in FreeClientResources ()
#36 0x00007fa37dc0fbaa in CloseDownClient ()
#37 0x00007fa37dc10736 in ?? ()
#38 0x00007fa37dbff64a in ?? ()
#39 0x00007fa37bd7f76d in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#40 0x00007fa37dbff93d in _start ()
****************************************************************

In particular, note that WriteEventsToClient is called from a signal handler; this is unsafe. The pointer barrier event code needs to be modified to not send events from the SIGIO context.

Argh! Stupid signals!

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: xserver-xorg-core 2:1.11.4-0ubuntu4
ProcVersionSignature: Ubuntu 3.2.0-18.28-generic 3.2.9
Uname: Linux 3.2.0-18-generic x86_64
.tmp.unity.support.test.0:

ApportVersion: 1.94-0ubuntu1
Architecture: amd64
CompizPlugins: [core,bailer,detection,composite,opengl,decor,compiztoolbox,regex,imgpng,place,animation,expo,grid,mousepoll,session,snap,vpswitch,wall,workarounds,unitymtgrabhandles,resize,gnomecompat,move,fade,scale,ezoom,unityshell]
CompositorRunning: compiz
Date: Mon Mar 5 20:19:30 2012
DistUpgraded: Fresh install
DistroCodename: precise
DistroVariant: ubuntu
EcryptfsInUse: Yes
ExtraDebuggingInterest: Yes, whatever it takes to get this fixed in Ubuntu
GraphicsCard:
 Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0116] (rev 09) (prog-if 00 [VGA controller])
   Subsystem: Dell Device [1028:04c1]
 Advanced Micro Devices [AMD] nee ATI Whistler [AMD Radeon HD 6600M Series] [1002:6741] (rev ff) (prog-if ff)
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64 (20120128)
MachineType: Dell Inc. Dell System Inspiron N4110
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.2.0-18-generic root=/dev/mapper/sda3_crypt ro rootflags=subvol=@ quiet splash vt.handoff=7
SourcePackage: xorg-server
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 09/20/2011
dmi.bios.vendor: Dell Inc.
dmi.bios.version: A07
dmi.board.name: Q4E343
dmi.board.vendor: Dell Inc.
dmi.board.version: X01
dmi.chassis.type: 8
dmi.chassis.vendor: Dell Inc.
dmi.chassis.version: 0.1
dmi.modalias: dmi:bvnDellInc.:bvrA07:bd09/20/2011:svnDellInc.:pnDellSystemInspironN4110:pvr:rvnDellInc.:rnQ4E343:rvrX01:cvnDellInc.:ct8:cvr0.1:
dmi.product.name: Dell System Inspiron N4110
dmi.sys.vendor: Dell Inc.
version.compiz: compiz 1:0.9.7.0~bzr3025-r3034-p737~precise1
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.30-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 8.0.1-0ubuntu2
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental 8.0.1-0ubuntu2
version.libgl1-mesa-glx: libgl1-mesa-glx 8.0.1-0ubuntu2
version.xserver-xorg-core: xserver-xorg-core 2:1.11.4-0ubuntu4
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.6.99.901+git20120126-0ubuntu2
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.99~git20111219.aacbd629-0ubuntu2
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.17.0-1ubuntu4
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:0.0.16+git20111201+b5534a1-1build2

Revision history for this message
Chris Halse Rogers (raof) wrote :
Changed in xorg-server (Ubuntu):
status: New → In Progress
importance: Undecided → Critical
assignee: nobody → Chris Halse Rogers (raof)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xorg-server - 2:1.11.4-0ubuntu6

---------------
xorg-server (2:1.11.4-0ubuntu6) precise; urgency=low

  * debian/patches/500_pointer_barrier_thresholds.diff:
    - Don't try to send events from the context of the SIGIO handler. That
      leads to the dark side, or at least to server freezes when trying to
      reveal the launcher in Unity (LP: #946954). May also fix other seemingly
      random X server crashes.
    - Add build-time tests to make check for barrier behaviour. These are
      disabled, pending gtest, xorg-gtest, and xserver-xorg-video-dummy MIRs.
 -- Christopher James Halse Rogers <email address hidden> Fri, 09 Mar 2012 19:16:02 +1100

Changed in xorg-server (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.