Comment 25 for bug 537133

Revision history for this message
Colin Watson (cjwatson) wrote :

David Gnedt: Thanks for your patch! I had to think moderately hard about whether nih_main_loop_exit always gets called eventually. I think there is one case where it does not get called. Consider this sequence of events:

 * All filesystems but one get successfully mounted, with a remote mount process outstanding
 * try_mounts returns since newly_mounted is false and there's still a child watch
 * The remote mount fails, so the remote mount process exits non-zero
 * spawn_child_handler calls run_mount_finished with status != 0
 * run_mount_finished returns more or less immediately without doing anything that might set newly_mounted to true

As far as I can see, mountall will now be hung, which will hang the boot process. If you agree with this analysis, perhaps try_mounts needs to be adjusted to cope with this case?