[Bug 854329] [NEW] race condition on shutdown with more than one DM installed

Steve Langasek steve.langasek at canonical.com
Tue Sep 20 00:20:00 UTC 2011


Public bug reported:

the migration from gdm to lightdm has revealed a race condition in
/etc/init/plymouth.conf on shutdown.  The job currently does:

 start on (... or (runlevel [016] and (stopped gdm or stopped kdm or
stopped $otherdm)))

However, if more than one of these dm packages is installed, at least
one of these 'stopped $dm' events will be emitted *on system startup*
because whichever DM is not the default will have its job started and
immediately stopped.

This means the second half of the AND is already satisfied, so as soon
as the 'runlevel' event fires, plymouth starts up, racing the shutdown
of the actually-running DM.  And starting plymouth is bound to be faster
than shutting down a running X session, which means plymouth and X are
running at the same time and arguing about who controls the VT.

The result is that plymouth starts rendering, then X sets the VT into
text mode on shutdown, causing plymouth's progress indicator (5 cycling
dots) to be drawn over the text screen.

To fix this, we need the plymouth job to be able to distinguish between
the *cause* of the DM job stopping.  This probably means emitting a new
event from the DM jobs, having plymouth look for this new event, and
coordinating the transition with bidirectional Breaks: on the packages.

ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: plymouth 0.8.2-2ubuntu26
ProcVersionSignature: Ubuntu 3.0.0-9.15-generic 3.0.3
Uname: Linux 3.0.0-9-generic x86_64
ApportVersion: 1.23-0ubuntu1
Architecture: amd64
Date: Mon Sep 19 17:03:00 2011
DefaultPlymouth: /lib/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth
InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release amd64 (20100816.1)
MachineType: LENOVO 3249CTO
ProcCmdLine: BOOT_IMAGE=/vmlinuz-3.0.0-9-generic root=/dev/mapper/hostname-root ro quiet splash vt.handoff=7
ProcEnviron:
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.0.0-9-generic root=/dev/mapper/hostname-root ro quiet splash vt.handoff=7
SourcePackage: plymouth
TextPlymouth: /lib/plymouth/themes/ubuntu-text/ubuntu-text.plymouth
UpgradeStatus: Upgraded to oneiric on 2011-06-27 (84 days ago)
dmi.bios.date: 08/23/2010
dmi.bios.vendor: LENOVO
dmi.bios.version: 6QET52WW (1.22 )
dmi.board.name: 3249CTO
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvr6QET52WW(1.22):bd08/23/2010:svnLENOVO:pn3249CTO:pvrThinkPadX201:rvnLENOVO:rn3249CTO:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 3249CTO
dmi.product.version: ThinkPad X201
dmi.sys.vendor: LENOVO

** Affects: gdm (Ubuntu)
     Importance: High
         Status: Triaged

** Affects: kde-workspace (Ubuntu)
     Importance: Low
         Status: Triaged

** Affects: lightdm (Ubuntu)
     Importance: High
         Status: Triaged

** Affects: lxdm (Ubuntu)
     Importance: Low
         Status: New

** Affects: plymouth (Ubuntu)
     Importance: High
         Status: Triaged

** Affects: gdm (Ubuntu Oneiric)
     Importance: High
         Status: Triaged

** Affects: kde-workspace (Ubuntu Oneiric)
     Importance: Low
         Status: Triaged

** Affects: lightdm (Ubuntu Oneiric)
     Importance: High
         Status: Triaged

** Affects: lxdm (Ubuntu Oneiric)
     Importance: Low
         Status: New

** Affects: plymouth (Ubuntu Oneiric)
     Importance: High
         Status: Triaged


** Tags: amd64 apport-bug oneiric running-unity

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to plymouth in Ubuntu.
https://bugs.launchpad.net/bugs/854329

Title:
  race condition on shutdown with more than one DM installed

Status in “gdm” package in Ubuntu:
  Triaged
Status in “kde-workspace” package in Ubuntu:
  Triaged
Status in “lightdm” package in Ubuntu:
  Triaged
Status in “lxdm” package in Ubuntu:
  New
Status in “plymouth” package in Ubuntu:
  Triaged
Status in “gdm” source package in Oneiric:
  Triaged
Status in “kde-workspace” source package in Oneiric:
  Triaged
Status in “lightdm” source package in Oneiric:
  Triaged
Status in “lxdm” source package in Oneiric:
  New
Status in “plymouth” source package in Oneiric:
  Triaged

Bug description:
  the migration from gdm to lightdm has revealed a race condition in
  /etc/init/plymouth.conf on shutdown.  The job currently does:

   start on (... or (runlevel [016] and (stopped gdm or stopped kdm or
  stopped $otherdm)))

  However, if more than one of these dm packages is installed, at least
  one of these 'stopped $dm' events will be emitted *on system startup*
  because whichever DM is not the default will have its job started and
  immediately stopped.

  This means the second half of the AND is already satisfied, so as soon
  as the 'runlevel' event fires, plymouth starts up, racing the shutdown
  of the actually-running DM.  And starting plymouth is bound to be
  faster than shutting down a running X session, which means plymouth
  and X are running at the same time and arguing about who controls the
  VT.

  The result is that plymouth starts rendering, then X sets the VT into
  text mode on shutdown, causing plymouth's progress indicator (5
  cycling dots) to be drawn over the text screen.

  To fix this, we need the plymouth job to be able to distinguish
  between the *cause* of the DM job stopping.  This probably means
  emitting a new event from the DM jobs, having plymouth look for this
  new event, and coordinating the transition with bidirectional Breaks:
  on the packages.

  ProblemType: Bug
  DistroRelease: Ubuntu 11.10
  Package: plymouth 0.8.2-2ubuntu26
  ProcVersionSignature: Ubuntu 3.0.0-9.15-generic 3.0.3
  Uname: Linux 3.0.0-9-generic x86_64
  ApportVersion: 1.23-0ubuntu1
  Architecture: amd64
  Date: Mon Sep 19 17:03:00 2011
  DefaultPlymouth: /lib/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth
  InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release amd64 (20100816.1)
  MachineType: LENOVO 3249CTO
  ProcCmdLine: BOOT_IMAGE=/vmlinuz-3.0.0-9-generic root=/dev/mapper/hostname-root ro quiet splash vt.handoff=7
  ProcEnviron:
   PATH=(custom, user)
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  ProcFB: 0 inteldrmfb
  ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.0.0-9-generic root=/dev/mapper/hostname-root ro quiet splash vt.handoff=7
  SourcePackage: plymouth
  TextPlymouth: /lib/plymouth/themes/ubuntu-text/ubuntu-text.plymouth
  UpgradeStatus: Upgraded to oneiric on 2011-06-27 (84 days ago)
  dmi.bios.date: 08/23/2010
  dmi.bios.vendor: LENOVO
  dmi.bios.version: 6QET52WW (1.22 )
  dmi.board.name: 3249CTO
  dmi.board.vendor: LENOVO
  dmi.board.version: Not Available
  dmi.chassis.asset.tag: No Asset Information
  dmi.chassis.type: 10
  dmi.chassis.vendor: LENOVO
  dmi.chassis.version: Not Available
  dmi.modalias: dmi:bvnLENOVO:bvr6QET52WW(1.22):bd08/23/2010:svnLENOVO:pn3249CTO:pvrThinkPadX201:rvnLENOVO:rn3249CTO:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
  dmi.product.name: 3249CTO
  dmi.product.version: ThinkPad X201
  dmi.sys.vendor: LENOVO

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gdm/+bug/854329/+subscriptions




More information about the foundations-bugs mailing list