[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