Bug 874322 - [6.4] XFS log recovery failure leads to loss of data
Summary: [6.4] XFS log recovery failure leads to loss of data
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: kernel
Version: 6.4
Hardware: Unspecified
OS: Unspecified
urgent
high
Target Milestone: rc
: ---
Assignee: Dave Chinner
QA Contact: Boris Ranto
URL:
Whiteboard:
Depends On:
Blocks: 876498 876499 881827
TreeView+ depends on / blocked
 
Reported: 2012-11-07 22:18 UTC by Dave Chinner
Modified: 2013-02-21 06:55 UTC (History)
14 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Previously, XFS could, under certain circumstances, incorrectly read metadata from the journal during XFS log recovery. As a consequence, XFS log recovery terminated with an error message and prevented the file system from being mounted. This problem could result in a loss of data if the user forcibly "zeroed" the log to allow the file system to be mounted. This update ensures that metadata is read correctly from the log so that journal recovery completes successfully and the file system mounts as expected.
Clone Of:
Environment:
Last Closed: 2013-02-21 06:55:53 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2013:0496 normal SHIPPED_LIVE Important: Red Hat Enterprise Linux 6 kernel update 2013-02-20 21:40:54 UTC

Description Dave Chinner 2012-11-07 22:18:34 UTC
Description of problem:

An log recovery problem was discovered upstream recently. Details in this thread here:

http://oss.sgi.com/archives/xfs/2012-10/msg00537.html

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:

http://oss.sgi.com/archives/xfs/2012-11/msg00019.html

"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.

How reproducible:

100%.

Steps to Reproduce:

http://oss.sgi.com/archives/xfs/2012-10/msg00568.html

I'm currently working a new xfstests unit test to exercise recovery of wrapped log writes.
  
Actual results:

Unmountable filesystem, repair tossing away unrecovered metadata causing data loss.

Expected results:

Filesystem recovers the journal and mounts successfully.

Comment 2 RHEL Product and Program Management 2012-11-07 22:41:02 UTC
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.

Comment 9 Jarod Wilson 2012-11-19 15:09:01 UTC
Patch(es) available on kernel-2.6.32-342.el6

Comment 14 errata-xmlrpc 2013-02-21 06:55:53 UTC
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.

http://rhn.redhat.com/errata/RHSA-2013-0496.html


Note You need to log in before you can comment on or make changes to this bug.