On Tue, 22 Jul 2014, Ritesh Raj Sarraf wrote:
Do you have any of the critical file systems (/, /usr) on an external USB disk ?
I do not, but /usr is on an LVM2 volume, and the combination of that and a bug in the lmt-udev script is the key.
Some experimentation with the systemd debug-shell service and copying some key utilities from /usr to / has, I think, found the problem.
The lmt-udev script is trying to detach itself from the udev daemon, but it is failing to do so. Udev is running the script with a pipe connected for stdout and stderr, and is (presumably) waiting for eof on that pipe instead of waiting for the immediate child process to exit.
Attached is the output of ps auxww, pstree -alp, and lsof -n from while the boot is hung. You can see the pipes open and the original lmt-udev processes in the zombie/defunct state.
Changing the last line of /lib/udev/lmt-udev from: ) & to: ) </dev/null >/dev/null 2>&1 &detaches from those pipes, fixing the problem and producing a normal boot.
--
-Matt
"Reality is that which, when you stop believing in it, doesn't go away".
-- Philip K. Dick
GPG pubkey fingerprint: A57F B354 FD30 A502 795B 9637 3EF1 3F22 A85E 2AD1
lmtdebug.txt.gz
Description: lmtdebug.txt.gz

