[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