All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Eryu Guan <eguan@redhat.com>
Cc: xfs@oss.sgi.com
Subject: Re: BUG: Internal error xfs_trans_cancel at line 984 of file fs/xfs/xfs_trans.c
Date: Tue, 30 Aug 2016 12:39:05 +1000	[thread overview]
Message-ID: <20160830023905.GU19025@dastard> (raw)
In-Reply-To: <20160829103754.GH27776@eguan.usersys.redhat.com>

On Mon, Aug 29, 2016 at 06:37:54PM +0800, Eryu Guan wrote:
> Hi,
> 
> I've hit an XFS internal error then filesystem shutdown with 4.8-rc3
> kernel but not with 4.8-rc2
.....
> I attached a script too to reproduce it. Please note that the XFS
> partition needs about 40G frees space, and it may take hours to finish
> based on your memory setup on your host.

Ugh. can you try to narrow the cause so it takes less time to
reproduce? This is almost certainly one of two things:

	1) a ENOSPC issue where an AG is almost-but-not-quite full,
	but fixing up the freelist results in there being not enough
	blocks left to allocate the data extent; or

	2) we've split a delalloc extent so many times that we've
	run out of indirect block reservation and we hit ENOSPC as a
	result.

For the latter, I suspect a test case where we take a large delalloc
range and use sync_file_range to do single page writeback to "binary
split" the delalloc range. i.e. start with a 128MB delalloc, then
sync a 4k block at offset 64MB, then 4k at 32MB, then 16MB, then
8MB, ... all the way down to writing the first block in the file,
and also all the way up to the final block in the file.

Then write every second 4k block to cause worse case growth of the
bmbt and hopefully then exhaust the indirect block reservation for
that delalloc region...

> [root@hp-dl360g9-15 ~]# xfs_info /
> meta-data=/dev/mapper/systemvg-root isize=256    agcount=16, agsize=2927744 blks
>          =                       sectsz=512   attr=2, projid32bit=1
>          =                       crc=0        finobt=0 spinodes=0
> data     =                       bsize=4096   blocks=46843904, imaxpct=25
>          =                       sunit=64     swidth=192 blks
> naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
> log      =internal               bsize=4096   blocks=22912, version=2
>          =                       sectsz=512   sunit=64 blks, lazy-count=1
> realtime =none                   extsz=4096   blocks=0, rtextents=0

Does it reproduce on a CRC enabled filesystem?

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

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

  reply	other threads:[~2016-08-30  2:39 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-29 10:37 BUG: Internal error xfs_trans_cancel at line 984 of file fs/xfs/xfs_trans.c Eryu Guan
2016-08-30  2:39 ` Dave Chinner [this message]
2016-08-30 14:48   ` Eryu Guan
2016-09-29  7:54   ` Eryu Guan
2016-09-29  8:00     ` Eryu Guan
2016-08-31  8:56 ` Eryu Guan
2016-09-01 10:39 ` Eryu Guan
2016-09-01 21:46   ` 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=20160830023905.GU19025@dastard \
    --to=david@fromorbit.com \
    --cc=eguan@redhat.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.