fsck/usplash: device names not fully reported

Bug #203323 reported by Kees Cook
2
Affects Status Importance Assigned to Milestone
e2fsprogs
Unknown
Unknown
e2fsprogs (Ubuntu)
Fix Released
Undecided
Martin Pitt
sysvinit (Ubuntu)
Fix Released
Undecided
Martin Pitt

Bug Description

Binary package hint: sysvinit

When fsck checks all filesystems (-A -R), it runs sub-fscks serially, so that device names are visible one at a time. As a result, when fsck checks multiple devices, usplash only reports the first name, but then counts up to 100% for each device.

As a possible solution, I think it may make sense to re-arrange the usplash text for routine checks to be more like the forced check (putting the current device name on the status line):

 Routine check of drives. Press ESC to skip.
 $NAME...

additionally, if a percentage goes "backwards" (i.e. a new fsck starts), "get_checked_names" can be called again, and a new "$NAME..." line can be reported (after clearing status and issuing a SUCCESS).

Related branches

Kees Cook (kees)
Changed in sysvinit:
assignee: nobody → pitti
Martin Pitt (pitti)
Changed in sysvinit:
status: New → In Progress
Revision history for this message
Martin Pitt (pitti) wrote :

Ah, this happens if fstab specifies different check order priorities for different partitions (by default all non-root FSes are priority 2 and thus checked in parallel).

Martin Pitt (pitti)
Changed in sysvinit:
status: In Progress → Fix Committed
Revision history for this message
Martin Pitt (pitti) wrote :

In the case where several devices are e2fsck'ed in parallel, using fsck -A -C3 only reports progress for the first device; there is no further output on FD 3 for the other devices. This causes usplash to not report any progress in this case, which is difficult to work around in the usplash scripts. That needs to be fixed in e2fsck itself.

Changed in e2fsprogs:
assignee: nobody → pitti
status: New → Confirmed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package sysvinit - 2.86.ds1-14.1ubuntu42

---------------
sysvinit (2.86.ds1-14.1ubuntu42) hardy; urgency=low

  * debian/initscripts/lib/init/usplash-fsck-functions.sh:
    - When pressing ESC, do not kill the logsave command (since this does not
      reliably kill the subprocess), but the fsck.ext[23] processes directly.
      (LP: #203322)
    - When checking multiple partitions in succession, print the name of the
      next device when it comes to its turn. NB that this still does not work
      with checking multiple partitions in parallel, that's an fsck bug.
      (LP: #203323)
    - Use usplash 0.5.17's new FAIL_NO_USPLASH mode to avoid being stuck at
      reading from the usplash FIFO if usplash died during fsck.
    - Also output fsck progress information to the current console. This looks
      quite dodgy ATM, but is better than not printing anything at all if
      usplash died in between.

 -- Martin Pitt <email address hidden> Wed, 26 Mar 2008 13:35:10 +0100

Changed in sysvinit:
status: Fix Committed → Fix Released
Revision history for this message
Theodore Ts'o (tytso) wrote :

    - When pressing ESC, do not kill the logsave command (since this does not
      reliably kill the subprocess), but the fsck.ext[23] processes directly.
      (LP: #203322)

The following attached bug should address this issue in logsave as well. It may help you since otherwise you're probably having to do some grody things to get the fsck.ext[234] pid.

Also, please see the souceforge bug for some patches I'd like you to evaluate to see if they address the problems from the fsck/e2fsck side.

Thanks!!

Revision history for this message
Martin Pitt (pitti) wrote :

Thanks for the logsave patch. It's probably a good idea to apply it (in Debian, preferably), but I think I'll stick to the direct fsck.ext[23] killing in the usplash fsck integration. If I would kill the entire fsck -A, then one ESC would abort *all* checks, not just the one on the current partition. This could hide checks which are done for genuinely broken file systems, so I'd rather avoid this.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package e2fsprogs - 1.40.8-2ubuntu2

---------------
e2fsprogs (1.40.8-2ubuntu2) hardy; urgency=low

  * Fix progress information when fsck'ing multiple partitions. (LP: #203323)
  * Treat "ext4" and "ext4dev" file systems as fsck'able.
  * Patches taken from upstream bug tracker:
    https://sourceforge.net/tracker/index.php?func=detail&aid=1926023&group_id=2406&atid=102406
    Thanks a lot to Theodore Ts'o!

 -- Martin Pitt <email address hidden> Thu, 27 Mar 2008 17:03:53 +0100

Changed in e2fsprogs:
status: Confirmed → Fix Released
Revision history for this message
Theodore Ts'o (tytso) wrote :

The logsave patch is in the e2fsprogs maint branch so it will be in the next release of Debian unstable's e2fsprogs, and/or e2fsprogs 1.40.9.

Best regards,

-- Ted

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.