On Mon, May 24, 2010 at 03:11:23PM -0700, Elliott Mitchell wrote:
> Any update?

I continue to think this is hopelessly complex and not worth the
effort.

If you hate precautionary checks so much, then turn them off.  The
tools for doing this are within your hands.  Or do them using a LVM
snapshot.

> Should /I/ create a second bug report and attach it to util-linux? (or
> are you going to do the honors?) Thought I saw the current BTS can have a
> report shared amoung multiple packages...

Only if you are willing to do the heavy lifting to either (a) write
the patch, or (b) convince the util-linux folks that they should try
to implement it.  I will them that IMHO it's not worth their effort,
but if they have nothing better to do, they're welcome to do whatever
they want with their time.

(Something people don't seem to understand is free software means *you*
can do whatever you want with the code.  It does not mean that the
maintainer has to take any patch that any crackpot sends them, or that
a maintainer has to implement every crackpot idea that someone sends
to them.)

Still, if *you* really need this, don't let me stop you, or don't let
me stop you from paying some programmer you hire to implement it.
When I see code I can comment on whether it's something I am willing
to maintain for the long haul.  (And similarly, the util-linux-ng
folks can decide whether they are willing to maintain it for the long
haul.)


> Pass 2: (delayed task, queued by init scripts, but post-boot)
>       Scan all read-only filesystems, allowing precautionary checks in
> background.

In general it's not a great idea to modify a mounted filesystem, even
one mounted read-only, while it is being used.  Most of the time it
will be mostly safe, but there is always the chance that a changing
the file system out from under it will cause random undefined
behaviour, including potential kernel BUG_ON's.  We do it for the root
file system because we don't really have the choice, and during the
boot sequence the init scripts aren't really actively accessing the
filesystem while the fsck is running.

> Two concerns. First, what is the significance of return codes >=4 from a
> low-level fsck?

RTFM.   It's in the 3rd paragraph of the fsck man page....

> If these merely mean filesystem was altered in a way that
> invalidates kernel structures, isn't this non-problematic in the case of
> a filesystem that is mounted read-only? (a later remount rw would flush
> those, right?)

In general it's possible for fsck to potentially modify a filesystem
such that it will confuse a kernel which is actively accessing the
filesystem, yes.  It's rare, as discussed above, but it's
theoretically possible.  What's **really** bad is that if the file
system is mounted read-only, and then remounted read/write, it's
possible that there are cached file system data structures (block
group descriptors, inodes, etc) which were incorrect, and fixed by
fsck --- but the kernel doesn't know that they were modified, and if
the file system is remounted r/w, the incorrect cached version could
get written back to disk, thus undoing the good work of the fsck.

> Second, in what is listed above as "Pass 1b", the low-level fsck needs to
> make the decision of which filesystem to check if multiple are candidates
> for precautionary checking and it must scan all filesystems on the
> spindle. If a system is restarted very infrequently and fsck always goes
> for the first candidate (perhaps the one with lowest pass number), the
> situation could arise that earlier filesystems might *always* consume the
> precautionary check, and later filesystems might starve. Alas, only the
> low-level fscks will have information on the last time a filesystem was
> checked (I would use greatest time since last check divided by check
> interval, followed by amount over maximum mount count at first thought).

Yes, it's hard.  If you have that many file systems such that this is
an issue, then I suggest you use LVM and use LVM snapshots.

In any case, this is not something that *I* plan to do anything with,
simply because I have much higher priority things to do with my time.
If this is important, you'll have to do it or pay someone to do it, or
try to trick someone else into doing it.

                                             - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to