[Bug 655616] Re: Press S or M does not work for more than one partition on error
Colin Watson
cjwatson at canonical.com
Tue Apr 5 15:30:40 UTC 2011
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?
--
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is a direct subscriber.
https://bugs.launchpad.net/bugs/655616
Title:
Press S or M does not work for more than one partition on error
Status in “mountall” package in Ubuntu:
Triaged
Status in “mountall” source package in Lucid:
Triaged
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.
More information about the Ubuntu-sponsors
mailing list