Re: [PATCH 03/13] xfs: rationalise xfs_mount_wq users

Dave Chinner
2012-09-07T00:40:49Z

On Thu, Sep 06, 2012 at 10:08:47AM -0500, Mark Tinguely wrote:
> I misspoke, it is xfs test 179. I hit it doing a "check -g auto".
>
> My test boxes had CONFIG_XFS_DEBUG=y which may be a factor. The
> test ran fine on a box without the debug enabled and assert as
> soon as I added it back.

It is - the assert doesn't exist on a non-DEBUG kernel, so it won't
fail. ;)

> The buffer with zero b_hold count is the freelist buffer (XAGF)
> for AG0. The buffer is marked STALE, it has already gone through
> the release code, so there is no transaction pointer nor log item
> pointer. The xlog_cil_committed() is being called with the
> XFS_LI_ABORTED flag.

It looks like another case of this problem:

http://oss.sgi.com/archives/xfs/2012-09/msg00021.html

Which appears to be another case of the failure that Eric reported
he was seeing on test 137:

http://oss.sgi.com/archives/xfs/2012-08/msg00019.html
http://oss.sgi.com/archives/xfs/2012-09/msg00017.html

i.e. what appears to be a double free of a buffer during a forced
shutdown. The b_hold assertion that is being hit here is just prior
to doing the second free of a buffer. Given that Eric's case was
bisected down to the delwri queuing changes, I'd say this is the
same cause of this issue. i.e. unrelated to the patch set that was
posted.

What I can't work out is what reference is going missing, and I
can't reproduce it to be able to debug it....

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com