public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Eric Sandeen <sandeen@sandeen.net>
Cc: "xfs@oss.sgi.com" <xfs@oss.sgi.com>,
	Gerard Beekmans <GBeekmans@tsag.net>
Subject: Re: Unable to mount and repair filesystems
Date: Fri, 30 Jan 2015 10:12:31 +1100	[thread overview]
Message-ID: <20150129231231.GD6282@dastard> (raw)
In-Reply-To: <54CAB11A.7040509@sandeen.net>

On Thu, Jan 29, 2015 at 04:15:54PM -0600, Eric Sandeen wrote:
> On 1/29/15 3:59 PM, Gerard Beekmans wrote:
> I'm sure it's not related to this issue (unless it was very recently grown?
> Was it grown shortly before the failures?)
> 
> Hm, it would have started at 4 AGs by default, and it's the 5th one that
> looks bad; maybe that's a clue.  Are agf 6, 7, 8 etc also full of 0s?

Gerard is using the default mount options, so XFS is issuing cache
flushes and FUA with log writes. Hence if the new AG headers are
zero yet the superblock says they are valid, then that's a storage
bug.

In more detail: we force the new AGs to be written to disk
synchronously during the growfs operation before we commit the
transaction. The superblock with the larger AG count can only get on
disk after the transaction has been written to the log. Log writes
trigger a storge device cache flush, which results in the IO
ordering of:

new AG header IO
IO complete
transaction commit
....
Device cache flush
	(new AG headers guaranteed to be on disk)
journal write (FUA)
	(journal write guaranteed to be on disk)
.....
superblock write IO.

Hence if the superblock is showing 25 AGs and the new ags from 4-25
are not found on disk then either:

	a) if the grow was very recent the storage is not obeying
	cache flushes and hence breaking fundamental IO ordering
	behaviour; or,

	b) if the growfs happened long ago, the storage has lost the
	data that was written to stable media...

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2015-01-29 23:37 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-29 17:36 Unable to mount and repair filesystems Gerard Beekmans
2015-01-29 20:18 ` Eric Sandeen
2015-01-29 21:27   ` Gerard Beekmans
2015-01-29 21:49     ` Eric Sandeen
2015-01-29 21:59       ` Gerard Beekmans
2015-01-29 22:15         ` Eric Sandeen
2015-01-29 23:12           ` Dave Chinner [this message]
2015-01-30  0:04             ` Gerard Beekmans
2015-01-29 22:57     ` Dave Chinner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150129231231.GD6282@dastard \
    --to=david@fromorbit.com \
    --cc=GBeekmans@tsag.net \
    --cc=sandeen@sandeen.net \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox