Press S or M does not work for more than one partition on error

Bug #655616 reported by Mathieu Alorent
30
This bug affects 4 people
Affects Status Importance Assigned to Milestone
mountall (Ubuntu)
Invalid
Medium
Unassigned
Lucid
Won't Fix
Medium
Unassigned

Bug Description

Binary package hint: mountall

On 10.04 Lucid Server/Desktop installations, if a filesystem that is specified in /etc/fstab cannot be mounted for some reason (USB disk not connected, partition deleted, samba share not available etc.) the boot process hangs displaying "Press S to Skip or M for Manual recovery".

It works when there is only one partition on error, but with more than one, during the second message, pressing S/M does nothing and boot process hang there.

As seen in bug #571444, a workaround is to press alt-sysrq-i and edit your fstab to remove missing drives.

This bug looks like bug #571444, but on #571444 there is another issue which is about "no plymouth theme, so no message displayed". That's why I've opened a new bug specifically for "Press S or M does not work for more than one partition on error" problem.

I've found when trying to debug/trace the problem that the problem come from plymouth_answer function at lines 3037/3038.

the test :
        if ((plymouth_mnt != NULL) && (plymouth_mnt->error != plymouth_error))
                return;
is true as "plymouth_mnt->error" variable as been reset to "ERROR_NONE"

I'll post a patch.

Tags: patch
Revision history for this message
Mathieu Alorent (kumy) wrote :

Here is a patch :)

I've also build a new package, you could find it in my PPA.

https://launchpad.net/~kumy/+archive/ppa?field.series_filter=lucid

( sudo add-apt-repository ppa:kumy/ppa )

tags: added: patch
Changed in mountall (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
Changed in mountall (Ubuntu Lucid):
status: New → Triaged
importance: Undecided → Medium
Revision history for this message
Brian Murray (brian-murray) wrote :

I tried recreating this on Natty by creating two entries in my /etc/fstab for 2 devices that do not exist. After pressing S to skip the first entry, I was then presented the option to press S again for the second partition.

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

Thanks for your patch.

The third change to src/mountall.c appears unnecessary. mnt->error was already set to ERROR_NONE immediately above (we know that the 'if (status)' block can't have been run, since that unconditionally returns).

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

Oh, never mind, you're moving that code. I'll reread with more coffee!

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

In the first change to src/mountall.c (in run_mount), mnt->error can only be ERROR_NONE or ERROR_BORED due to the check at the top of this function. The effect of that change is therefore that mnt->error may be ERROR_BORED in the period between spawn being called and run_mount_finished being called from the event loop (this isn't a problem in the other two branches of that if statement because they both pass wait == TRUE to spawn). I think that this is wrong; it means that, if the mount takes long enough that plymouth_update is called in the meantime, then the message "The disk drive for %s is not ready yet or not present" will be displayed even though mount is running on that device.

So, let's analyse the second and third changes. Those move 'mnt->error = ERROR_NONE' down to below the 'if (status)' block. The only case whose behaviour that can change is that where mount exits non-zero on a remote filesystem. It appears that currently mountall is intentionally not printing errors about those; see bug 504224. I can see that it might make some sense to zero out any previous ERROR_BORED error, for consistency, but that's the only effect I can see this having.

I'm certainly not opposed to this kind of fix, and I'm sorry that we've taken so long to respond to your patch; the bug as described is definitely an important one to fix. However, I want to understand patches completely before I apply them, to make sure that I'm not breaking something else in the process. Could you explain the exact situation where this patch changes behaviour, with reference to the code?

Revision history for this message
Scott Moser (smoser) wrote :

I'm un-subscribing ubuntu-sponsors, as Collin asked for input. When you sort that out, please move this from 'incomplete' and subscribe sponsors team again.

Changed in mountall (Ubuntu):
status: Triaged → Incomplete
Revision history for this message
Daniel Nyström (speakman) wrote :

I'm running Natty and has the latest updates as of 1 June 2011. I'm experiencing as described in the bug report; having four NFS entries failing at boot, there is no reaction when pressing either S nor M when asked for.

Taking me away from this required the Alternate CD on an USB-disk and booting for rescue.

Revision history for this message
Steve Langasek (vorlon) wrote :

Several people have tried to reproduce this issue without success in recent versions of mountall. I've tried myself in saucy, and can't reproduce it. The request for a reproducer was sent two years ago. With no more information, I'm closing this bug as invalid (and presumed fixed in recent releases).

Changed in mountall (Ubuntu):
status: Incomplete → Invalid
Revision history for this message
Rolf Leggewie (r0lf) wrote :

lucid has seen the end of its life and is no longer receiving any updates. Marking the lucid task for this ticket as "Won't Fix".

Changed in mountall (Ubuntu Lucid):
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.