mountall for /var or other nfs mount races with rpc.statd
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
mountall (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Lucid |
Invalid
|
Undecided
|
Unassigned | ||
Maverick |
Invalid
|
Undecided
|
Unassigned | ||
Natty |
Invalid
|
Undecided
|
Unassigned | ||
nfs-utils (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Lucid |
Fix Released
|
High
|
Unassigned | ||
Maverick |
Fix Released
|
High
|
Unassigned | ||
Natty |
Fix Released
|
High
|
Unassigned | ||
portmap (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Lucid |
Fix Released
|
High
|
Unassigned | ||
Maverick |
Fix Released
|
High
|
Unassigned | ||
Natty |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
If one has /var (or /var/lib or /var/lib/nfs for that matter) on its own filesystem the statd.conf start races with the mounting of /var as rpc.statd needs /var/lib/nfs to be available in order to work.
I am sure this is not the only occurrence of this type of problem.
A knee-jerk solution is to simply spin in statd.conf waiting for /var/lib/nfs to be available, but polling sucks, especially for something like upstart whose whole purpose is to be an event driven action manager.
SRU justification: NFS mounts do not start reliably on boot in lucid and maverick (depending on the filesystem layout of the client system) due to race conditions in the startup of statd. This should be fixed so users of the latest LTS can make reliable use of NFS.
Regression potential: Some systems may fail to mount NFS filesystems at boot time that didn't fail before. Some systems may hang at boot. Some systems may hang while upgrading the packages (this version or in a future SRU). I believe the natty update adequately guards against all of these possibilities, but the risk is there.
TEST CASE:
1. Configure a system with /var as a separate partition.
2. Add one or more mounts of type 'nfs' to /etc/fstab.
3. Boot the system.
4. Verify whether statd has started (status statd) and whether all NFS filesystems have been mounted.
5. Repeat 3-4 until the race condition is triggered.
6. Upgrade to the new version of portmap and nfs-common from -proposed.
7. Repeat steps 3-4 until satisfied that statd now starts reliably and all non-gss-
Related branches
- James Hunt (community): Needs Fixing
- Steve Langasek: Pending requested
- Ubuntu branches: Pending requested
-
Diff: 116 lines (+58/-6)5 files modifieddebian/changelog (+11/-0)
debian/control (+1/-1)
debian/nfs-common.statd-mounting.upstart (+28/-0)
debian/nfs-common.statd.upstart (+17/-5)
debian/rules (+1/-0)
- Steve Langasek: Needs Fixing
-
Diff: 94 lines (+52/-3)5 files modifieddebian/changelog (+12/-0)
debian/portmap.portmap-boot.upstart (+10/-0)
debian/portmap.portmap-wait.upstart (+22/-0)
debian/portmap.portmap.upstart (+5/-2)
debian/rules (+3/-1)
tags: | added: patch |
description: | updated |
description: | updated |
Changed in nfs-utils (Ubuntu): | |
importance: | Undecided → High |
Changed in nfs-utils (Ubuntu Natty): | |
status: | Triaged → In Progress |
assignee: | nobody → Clint Byrum (clint-fewbar) |
Changed in nfs-utils (Ubuntu Lucid): | |
status: | New → Confirmed |
Changed in nfs-utils (Ubuntu Maverick): | |
status: | New → Confirmed |
Changed in portmap (Ubuntu Natty): | |
status: | New → Confirmed |
Changed in portmap (Ubuntu Natty): | |
status: | Confirmed → Fix Released |
Changed in nfs-utils (Ubuntu Natty): | |
status: | In Progress → Fix Released |
Changed in nfs-utils (Ubuntu Lucid): | |
status: | Confirmed → Triaged |
Changed in portmap (Ubuntu Lucid): | |
status: | New → Triaged |
Changed in nfs-utils (Ubuntu Maverick): | |
importance: | Undecided → High |
Changed in nfs-utils (Ubuntu Lucid): | |
importance: | Undecided → High |
Changed in portmap (Ubuntu Lucid): | |
importance: | Undecided → High |
Changed in portmap (Ubuntu Maverick): | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in nfs-utils (Ubuntu Maverick): | |
status: | Confirmed → Triaged |
description: | updated |
Changed in nfs-utils (Ubuntu Lucid): | |
status: | Triaged → Fix Committed |
tags: | added: verification-needed |
Changed in portmap (Ubuntu Lucid): | |
status: | Triaged → Fix Committed |
tags: |
added: verification-done removed: verification-needed |
Changed in portmap (Ubuntu Maverick): | |
status: | Triaged → Fix Committed |
tags: | removed: verification-done |
tags: | added: verification-needed |
tags: | added: verification-done |
Changed in nfs-utils (Ubuntu Maverick): | |
status: | Triaged → Fix Committed |
tags: | removed: verification-done |
tags: |
added: verification-done removed: verification-needed |
tags: | added: verification-needed |
Changed in nfs-utils (Ubuntu Natty): | |
assignee: | Clint Byrum (clint-fewbar) → nobody |
tags: | removed: verification-needed |
Changed in nfs-utils (Ubuntu Lucid): | |
status: | Fix Committed → Fix Released |
Changed in portmap (Ubuntu Lucid): | |
status: | Fix Committed → Fix Released |
summary: |
- mountall for /var races with rpc.statd + mountall for /var or other nfs mount races with rpc.statd |
The whole /var thing is not really a very well thought out part of the FHS