[Bug 818177] Re: boot failures because 'udevadm exit' does not kill udevd worker threads

Steve Langasek steve.langasek at canonical.com
Thu Oct 6 18:40:44 UTC 2011


The output in comment #57 is pretty conclusive.  The call to 'udevadm
exit' is killing the parent process, but leaving all the worker threads
running... and these worker threads are holding /dev open, preventing
the mount -o move from working.

The use of 'udevadm exit' is a recent (oneiric-cycle) change, in
response to bug #787610 / Debian bug #624469.  Previously we used pkill,
which would kill *all* the processes named 'udevd', ensuring that the
children worker threads were also killed; but pkill is asynchronous
(since all it does is send a signal), so that's also a race condition.

I see two possible fixes:

1) fix 'udevadm exit' to reap its children (but that may not be correct vis-à-vis upstream)
2) call 'udevadm exit', and then *also* call pkill udevd to reap any remaining children

James, please check the udev upstream source to see if there are any
changes there already to make 'udevadm exit' handle its children more
robustly.  If there is, we should cherry-pick that fix.  If there isn't,
we should go with option 2) as a fallback.  Option 2 is still racy
because the child processes aren't guaranteed to die immediately either,
but this will close the race as best as we can on short notice.  If we
do have to go with option 2, we should pursue a more robust 'udevadm
exit' implementation with upstream.

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

Title:
  boot failures because 'udevadm exit' does not kill udevd worker
  threads

Status in “linux” package in Ubuntu:
  Invalid
Status in “udev” package in Ubuntu:
  Triaged
Status in “linux” source package in Oneiric:
  Invalid
Status in “udev” source package in Oneiric:
  Triaged

Bug description:
  After running a do-release-upgrade -d on a natty server, I'm unable to
  boot the machine properly.

  It looks like it doesn't see the local disks anymore.

  I think this looks quite a lot like the debbug linked from here:
  https://bugs.launchpad.net/ubuntu/oneiric/+source/linux/+bug/746751

  ProblemType: Bug
  DistroRelease: Ubuntu 11.10
  Package: linux-image-3.0.0-7-server 3.0.0-7.8
  ProcVersionSignature: Ubuntu 3.0.0-7.8-server 3.0.0
  Uname: Linux 3.0.0-7-server x86_64
  AlsaDevices:
   total 0
   crw-rw---- 1 root audio 116,  1 2011-07-29 13:34 seq
   crw-rw---- 1 root audio 116, 33 2011-07-29 13:34 timer
  AplayDevices: Error: [Errno 2] No such file or directory
  Architecture: amd64
  ArecordDevices: Error: [Errno 2] No such file or directory
  AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
  CRDA: Error: [Errno 2] No such file or directory
  Date: Fri Jul 29 13:40:10 2011
  HibernationDevice: RESUME=UUID=844d17fa-ff69-4250-844b-33b930236c56
  IwConfig:
   lo        no wireless extensions.
   
   eth0      no wireless extensions.
   
   eth1      no wireless extensions.
  MachineType: HP ProLiant DL380 G5
  PciMultimedia:
   
  ProcEnviron:
   LANGUAGE=en_US:
   PATH=(custom, user)
   LANG=en_US
   SHELL=/bin/bash
  ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.0.0-7-server root=/dev/mapper/User Name-root ro INIT_VERBOSE=yes
  RelatedPackageVersions:
   linux-restricted-modules-3.0.0-7-server N/A
   linux-backports-modules-3.0.0-7-server  N/A
   linux-firmware                          1.56
  RfKill: Error: [Errno 2] No such file or directory
  SourcePackage: linux
  UpgradeStatus: Upgraded to oneiric on 2011-07-29 (0 days ago)
  dmi.bios.date: 06/28/2007
  dmi.bios.vendor: HP
  dmi.bios.version: P56
  dmi.chassis.type: 23
  dmi.chassis.vendor: HP
  dmi.modalias: dmi:bvnHP:bvrP56:bd06/28/2007:svnHP:pnProLiantDL380G5:pvr:cvnHP:ct23:cvr:
  dmi.product.name: ProLiant DL380 G5
  dmi.sys.vendor: HP

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




More information about the foundations-bugs mailing list