On Thu, 2010-02-25 at 13:35 +0000, Steve Langasek wrote: > statd is "start on (started portmap or mount TYPE=nfs)" > portmap is "start on (local-filesystems and net-device-up IFACE=lo)"
I'm not terribly conversant on the state language of upstart yet, but does the above say that statd will be started after portmap has been started *or* an NFS mount is required and portmap will be started after local-filesystems has been completed and interface "lo" is up? > and the statd job tries to start portmap if it's not already running. Yeah. > So the only possible race conditions I see here are if > - mount TYPE=nfs is emitted before all the local filesystems are mounted Indeed! And I believe this is in fact the race I am running into. > - mount TYPE=nfs is emitted before lo is configured, and this causes portmap to fail Nope. I have debugged enough to know this is not the case. > - /var is on a network filesystem *other* than NFS (if it's on NFS, then this can't really be solved, you just get a deadlock if you try) Nope. /var is local. > Can you post your fstab, so I can better understand which of these cases > applies? Sure: # /etc/fstab: static file system information. # # file system mount point type options dump pass /dev/rootvol/ubuntu_root / ext3 defaults 0 0 UUID=9d79e085-9980-444d-b58b-e0a49b5c2edb /boot ext3 rw,nosuid,nodev 0 2 /dev/rootvol/swap none swap sw 0 0 proc /proc proc defaults 0 0 sys /sys sysfs defaults 0 0 /dev/fd0 /mnt/floppy auto noauto,rw,sync,user,exec 0 0 /dev/cdrom /mnt/cdrom auto noauto,ro,user,exec 0 0 /dev/rootvol/ubuntu_var /var ext3 rw,nosuid,nodev 0 2 /dev/rootvol/apt_archives /var/cache/apt/archives ext3 rw,nosuid,nodev 0 2 /dev/rootvol/ubuntu_usr /usr ext3 rw,nodev 0 2 /dev/rootvol/home /home ext3 rw,nosuid,nodev 0 2 /dev/datavol/video /video xfs rw,nosuid,nodev 0 2 pc:/home/brian /autohome/brian nfs auto,exec,dev,suid,rw,bg,rsize=8192,wsize=8192 1 1 linux:/mnt/mp3/library /var/lib/mythtv/music nfs rw,noexec,nodev,nosuid,bg,rsize=8192,wsize=8192 1 1 linux:/usr/src /usr/src nfs rw,nodev,nosuid,bg,rsize=8192,wsize=8192 1 1 I think you will agree that it's the first race condition. I'm not sure exactly what "local-filesystems" signal is signalling but assuming it really does mean "local" (i.e. directly attached block devices) is there any reason the boolean operator in the condition for starting statd is not "and" rather than "or"? That would ensure that /var is mounted and portmapper is running before a statd start is attempted. Doesn't statd require portmapper anyway? -- mountall for /var races with rpc.statd https://bugs.launchpad.net/bugs/525154 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs