Review: Disapprove

I think there's some very unfortunate scope creep here.  My previous revision 
was addressing what would have been a regression for users of static /dev, due 
to the incorrect overmounting with devtmpfs.  This subsequent change doesn't 
address any problems related to the /dev/pts case at all, instead adding checks 
for additional devices that have never been the source of error reports.

+ if (system_check_file ("/dev/null", S_IFCHR, makedev (1, 3)) < 0)
+ needs_devtmpfs = 1;
+
+ if (system_check_file ("/dev/console", S_IFCHR, makedev (5, 1)) < 0)
+ needs_devtmpfs = 1;
+
+ if (system_check_file ("/dev/tty", S_IFCHR, makedev (5, 0)) < 0)
+ needs_devtmpfs = 1;
+

This is a completely unnecessary check.  These three device nodes are 
guaranteed to *always* be present at boot time.  Either they're set up by the 
initramfs, or they're required to be part of /dev on the root filesystem, or 
the system must be configured for the kernel to automount devtmpfs at boot 
time.  It is therefore *wrong* for upstart to take action when these device 
nodes are missing, as that means the system is badly broken and requiring admin 
intervention, and papering over one of the symptoms will only make it harder 
for the problem to be fixed at its source.  This adds complexity where none is 
needed.

+ if (system_check_file ("/dev/kmsg", S_IFCHR, makedev (1, 11)) < 0)
+ needs_devtmpfs = 1;

This is a device that could possibly be missing (it's not included in the "std" 
set from MAKEDEV), but it also seems optional... if missing, you just don't get 
messages logged, right?

I think it's borderline as to whether upstart should do anything to create 
/dev/kmsg.  If it's not present at boot time, chances are that it will be 
present soon afterwards.  On the other hand, if it's going to become "present 
soon afterwards", it means we have a dynamic /dev, so there's probably no 
*harm* in mounting /dev here.  But I think it's still orthogonal to the problem 
this branch was supposed to solve and should be treated separately.

So the only part of this that I would include is the fix of the mknod() 
argument ordering.  (Which, btw, you probably never noticed problems with when 
testing because the node is created by the kernel at the same time as 
/dev/null, so in practice it's always present by the time devtmpfs is mounted.)
-- 
https://code.launchpad.net/~jamesodhunt/upstart/bug-980917-reworked/+merge/118132
Your team Upstart Reviewers is subscribed to branch lp:upstart.

-- 
upstart-devel mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/upstart-devel

Reply via email to