Can't spawn jobs without /dev/null breaks mountall-dev which would create it; aka mountall: Event failed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
mountall (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
upstart (Ubuntu) |
Invalid
|
Medium
|
Unassigned |
Bug Description
Binary package hint: upstart
Hi
While trying to boot with a 2.6.30 kernel, I discovered that the system can't boot with /dev on tmpfs instead of devtmpfs.
The system starts with some useful devices in /dev, then upstart spawns mountall which mounts /dev as tmpfs (no devtmpfs available), then emits the mounted even with MOUNTPOINT=/dev TYPE=tmpfs. When upstart tries starting mounted-dev (which is "start on mounted /dev"), it fails to do so because there is no /dev/null.
Just creating /dev/null before emitting this event is enough to fix the problem (no other device is needed).
(This is despite mounted-dev.conf NOT using console output.)
I will probably move to 2.6.32 or backport devtmpfs support in my kernel, but another workaround to demonstrate the underlying problem is to change mountall.conf as follows:
#expect daemon
[...]
script
. /etc/default/rcS
[ -f /forcefsck ] && force_fsck=
[ "$FSCKFIX" = "yes" ] && fsck_fix=
#exec mountall --daemon $force_fsck $fsck_fix
mountall --verbose --no-events $force_fsck $fsck_fix
mknod /dev/null char 1 3
initctl emit --no-wait mounted MOUNTPOINT=/dev TYPE=tmpfs
initctl emit --no-wait mounted MOUNTPOINT=/var/run TYPE=tmpfs
initctl emit --no-wait mounted MOUNTPOINT=/tmp
initctl emit --no-wait virtual-filesystems
initctl emit --no-wait local-filesystems
initctl emit --no-wait filesystem
echo "sent all events"
end script
This boots fine.
Thanks,
ProblemType: Bug
Architecture: amd64
Date: Thu Jan 28 19:33:56 2010
DistroRelease: Ubuntu 10.04
Package: upstart 0.6.3-11build1
ProcEnviron:
LANGUAGE=
PATH=(custom, user)
LANG=fr_FR.UTF-8
SHELL=/bin/zsh
ProcVersionSign
SourcePackage: upstart
Uname: Linux 2.6.32-11-generic x86_64
Related branches
Changed in upstart (Ubuntu): | |
status: | Triaged → Invalid |
BTW during my toying MAKEDEV-ing random stuff, I got upstart to fail with: setup_console: No such file or directory
init: system.c:119: Unhandled error from system_
init: Failed to spawn mounted-dev main process: unable to open console: No such file or directory
despite /dev/console existing. I suspect /dev/null or stdin didn't exist (this was after MAKEDEV console, but I'm not sure whether I had console output in this particular test).