Description of problem:
An log recovery problem was discovered upstream recently. Details in this thread here:
TL,DR: log recovery can fail due to incorrectly handling a log write that is wrapped around the end of the log, filesystem unmountable, repair can result in loss of metadata and user data.
The fix is here:
"Commit 4439647 ("xfs: reset buffer pointers before freeing them") in
3.0-rc1 introduced a regression when recovering log buffers that
wrapped around the end of log. The second part of the log buffer at
the start of the physical log was being read into the header buffer
rather than the data buffer, and hence recovery was seeing garbage
in the data buffer when it got to the region of the log buffer that
was incorrectly read."
Version-Release number of selected component (if applicable):
RHEL 6.4 has this log recovery bug in it.
Steps to Reproduce:
I'm currently working a new xfstests unit test to exercise recovery of wrapped log writes.
Unmountable filesystem, repair tossing away unrecovered metadata causing data loss.
Filesystem recovers the journal and mounts successfully.
This request was evaluated by Red Hat Product Management for
inclusion in a Red Hat Enterprise Linux release. Product
Management has requested further review of this request by
Red Hat Engineering, for potential inclusion in a Red Hat
Enterprise Linux release for currently deployed products.
This request is not yet committed for inclusion in a release.
Patch(es) available on kernel-2.6.32-342.el6
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.