Bug#474657: race condition on gdm stop after killing user procs

Kevin Mitchell kevmitch at gmail.com
Sun Apr 6 23:55:14 UTC 2008


Package: gdm
Version: 2.20.4-1
Severity: normal


The simplest way to reproduce this bug on my hardware is to create the following shell script (killdisplay.sh):

#!/bin/sh
pkill -u kevmitch
invoke-rc.d gdm stop

Where "kevmitch" should be replaced by the user logged in graphically via gdm. su to root from that users display and run

# nohup ./killdisplay.sh

Gdm will indeed stop, but you won't find any framebuffer output, i.e., you can't log on to the console anymore. Ctrl-Alt-F1, etc don't do anything. However since I happen to have an ACPI button mapped to /etc/init.d/gdm start, I was able to restart the daemon which does start X again and runs "normally". The frame buffer is still dead however and will remain so until reboot no matter what I do.

This does not happen if I modify the above script to sleep for 1 second in between killing the procs and stopping gdm:

#!/bin/sh
pkill -u kevmitch
sleep 1
invoke-rc.d gdm stop

This dumps you out on a functional framebuffer console as expected and desired, but gives the distubing kernel message
[  150.445462] gdm[4927]: segfault at 0000000800871ff8 rip 0000003108c5692f rsp 00007fff8a9dbac0 error 

Increasing the sleep interval to 2 prevents the above segfault from occuring.

I am using xserver-xorg-video-intel 2.2.1-1 on a T60 with 

# lspci | grep Graphics
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)

Kevin


-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (600, 'unstable'), (300, 'testing'), (200, 'stable'), (100, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.23-amd64.016 (SMP w/2 CPU cores)
Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=ISO-8859-1) (ignored: LC_ALL set to en_GB)
Shell: /bin/sh linked to /bin/bash

Versions of packages gdm depends on:
ii  adduser                3.107             add and remove users and groups
ii  aterm [x-terminal-emul 1.0.1-3           Afterstep XVT - a VT102 emulator f
ii  debconf [debconf-2.0]  1.5.20            Debian configuration management sy
ii  gksu                   2.0.0-5           graphical frontend to su
ii  gnome-session          2.22.0-2          The GNOME 2 Session Manager
ii  gnome-terminal [x-term 2.22.0-1          The GNOME 2 terminal emulator appl
ii  libart-2.0-2           2.3.20-1          Library of functions for 2D graphi
ii  libatk1.0-0            1.22.0-1          The ATK accessibility toolkit
ii  libattr1               1:2.4.41-1        Extended attribute shared library
ii  libc6                  2.7-10            GNU C Library: Shared libraries
ii  libcairo2              1.5.8-1           The Cairo 2D vector graphics libra
ii  libdbus-1-3            1.1.20-1          simple interprocess messaging syst
ii  libdbus-glib-1-2       0.74-1            simple interprocess messaging syst
ii  libdmx1                1:1.0.2-2         X11 Distributed Multihead extensio
ii  libfontconfig1         2.5.0-2           generic font configuration library
ii  libfreetype6           2.3.5-1+b1        FreeType 2 font engine, shared lib
ii  libglade2-0            1:2.6.2-1         library to load .glade files at ru
ii  libglib2.0-0           2.16.2-1          The GLib library of C routines
ii  libgnomecanvas2-0      2.20.1.1-1        A powerful object-oriented display
ii  libgtk2.0-0            2.12.9-2          The GTK+ graphical user interface 
ii  libpam-modules         0.99.7.1-6        Pluggable Authentication Modules f
ii  libpam-runtime         0.99.7.1-6        Runtime support for the PAM librar
ii  libpam0g               0.99.7.1-6        Pluggable Authentication Modules l
ii  libpango1.0-0          1.20.0-1          Layout and rendering of internatio
ii  librsvg2-2             2.22.2-2          SAX-based renderer library for SVG
ii  librsvg2-common        2.22.2-2          SAX-based renderer library for SVG
ii  libselinux1            2.0.59-1          SELinux shared libraries
ii  libwrap0               7.6.q-15          Wietse Venema's TCP wrappers libra
ii  libx11-6               2:1.0.3-7         X11 client-side library
ii  libxau6                1:1.0.3-2         X11 authorisation library
ii  libxdmcp6              1:1.0.2-2         X11 Display Manager Control Protoc
ii  libxext6               2:1.0.4-1         X11 miscellaneous extension librar
ii  libxi6                 2:1.1.3-1         X11 Input extension library
ii  libxinerama1           2:1.0.3-1         X11 Xinerama extension library
ii  libxml2                2.6.31.dfsg-2     GNOME XML library
ii  lsb-base               3.2-7             Linux Standard Base 3.2 init scrip
ii  metacity [x-window-man 1:2.22.0-1        A lightweight GTK2 based Window Ma
ii  openbox [x-window-mana 3.4.6.1-2         standards compliant, fast, light-w
ii  xterm [x-terminal-emul 234-1             X terminal emulator
ii  zlib1g                 1:1.2.3.3.dfsg-11 compression library - runtime

Versions of packages gdm recommends:
ii  dialog             1.1-20080316-1        Displays user-friendly dialog boxe
ii  gdm-themes         0.5.1                 Themes for the GNOME Display Manag
ii  whiptail           0.52.2-11.2           Displays user-friendly dialog boxe
ii  xserver-xephyr     2:1.4.1~git20080131-3 nested X server
ii  xserver-xorg       1:7.3+10              the X.Org X server
ii  zenity             2.22.0-1              Display graphical dialog boxes fro

-- debconf information:
  gdm/daemon_name: /usr/bin/gdm
* shared/default-x-display-manager: gdm





More information about the pkg-gnome-maintainers mailing list