Comment 6 for bug 447654

Judging by where the hang is, it's a bug in the nfs upstart confs. Well, strictly speaking it's an Upstart bug in that the event operator stuff is utterly broken, but for now the configs should be written with that in mind.

The problem can be described by this:

  start on A and (B or C)

When A happens, it is blocked.
Then when B happens, it is also blocked, and the job is started.
The operator tree is cleared and the blocked flags passed to the job itself (the job now blocks the events, not the tree)

Now when C happens, it is blocked.
It's waiting for A to happen again.

So if you have (I'm guessing): start on local-filesystems and (net-device-up or mount) then either net-device-up or mount will block forever.

You have to work around it by only using one type of operator