Re: XFS Repair Error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jun 26, 2019 at 3:30 PM Rich Otero <rotero@xxxxxxxxxxxxx> wrote:
>
> > This applies
> > http://xfs.org/index.php/XFS_FAQ#Q:_What_information_should_I_include_when_reporting_a_problem.3F
>
> kernel version: 3.12.17
> xfsprogs version: 3.1.7

All of the upstream file system lists are primarily for development of
what's in linux-next, mainline, and most recent stable kernels.
Anything much older is sort of an archaeological curiosity, but
otherwise it's really the distribution's responsibility to handle
issues if they've decided to keep on supporting something this old.

You found a curious/unexpected xfs_repair error with an ancient
version, and that's fine. But you kinda need to check it with
something a lot more recent to be relevant to this list.

> > Also, are the disk failures fixed? Is the RAID happy? I'm very
> > skeptical of writing anything, including repairs, let alone rw
> > mounting, a file system that's one a busted or questionably working
> > storage stack. The storage stack needs to be in working order first.
> > Is it?
>
> This particular server is used for development purposes and the data
> stored on it is replicated on other servers, so the integrity of the
> data is not very important. We have used XFS in our storage products
> for 15 years, mostly on RAID-5 and RAID-6 using LSI 3ware and Broadcom
> MegaRAID cards. It is not uncommon for disks to fail and be replaced
> and for the RAID to rebuild while the XFS is still in use, and we very
> rarely experience XFS problems during or after the rebuild. In this
> particular case, we suspected a malfunctioning RAID card and replaced
> it, and we are replacing some faulty disks.

Regardless of what file system and versions, a repair is going to
write changes to the file system. Writes to the file system when the
underlying storage stack state is not certainly healthy, is asking for
more damage, not a repair.

>
> > OK why -L ? Was there a previous mount attempt and if so when kernel
> > errors? Was there a previous repair attempt without -L? -L is a heavy
> > hammer that shouldn't be needed unless the log is damaged and if the
> > log is damaged or otherwise can't be replayed, you should get a kernel
> > message about that.
>
> Previously, mounting the XFS failed because the "structure must be
> cleaned." That led to the first attempt at xfs_repair without -L,
> which ended in an error complaining that the journal needed to be
> replayed. But since I couldn't mount, that was impossible, so the
> second xfs_repair attempt was with -L.

OK fair enough. Just for future reference, I suggest using a kernel
less than a year old and attempt a normal mount to see if possibly you
have run into an already fixed bug in the older kernel; and then a
newer xfsprogs using xfs_repair -n output reported to the list is at
least safe. If you run out of time waiting for a reply, I doubt many
people would fault you for moving on. But there's not that much
interesting with such old user space tools and zeroing out the log,
and with a questionable state for the underlying storage stack it's
really difficult to know what caused what problem. File systems are
already sufficiently non-deterministic in normal operation, but then
haphazard repair attempts with old tools and uncertain health state of
the storage stack make it substantially more difficult to figure out
what went wrong.


> I needed to make this server functional again quickly, and since I
> didn't care about losing the data, I simply reformatted the RAID
> (`mkfs.xfs -f`), so I won't be able to reproduce the xfs_repair error.
> In my eight years using XFS, I've never seen that error before, so I
> thought it would be interesting to report to the list and see what I
> could learn about it.

I can definitely see how it would seem to be interesting. But, sorry,
it isn't that interesting. Interesting is, you ran into a issue with
3.12, and tried again on 5.1 and ran into the same or even a different
problem.

$ git rev-list --count v3.12..v5.1 -- fs/xfs/
2603
$ git rev-list --count v3.12..v5.1 -- fs/btrfs/
4208
$ git rev-list --count v3.12..v5.1 -- fs/ext4/
1316

I don't think developers expect users to know esoteric things like the
metric f ton of development changes that happen over time. But as a
non-developer who tracks a tiny bit of what upstreams are up to, these
are very actively developed file systems, and there are tens of
thousands of changes since the 3.12 kernel. It's not just a few
hundred trivial bug fixes either. It's really a lot of work and kernel
3.12 is like 1940's case law. I rather hope they're thinking it's
impressive production file systems are using such an old kernel - and
I mean why not? A f ton of work went into making 3.12 what it is as
well, but there's only so many brain cells to remember the massive
number of changes since then. Maintaining old kernels is a speciality,
and upstream deals with much newer code. That's all.

--
Chris Murphy



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux