public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Chandra Seetharaman <sekharan@us.ibm.com>
Cc: XFS Mailing List <xfs@oss.sgi.com>
Subject: Re: xfstests 011 trips an ASSERT
Date: Fri, 25 Feb 2011 13:06:49 +1100	[thread overview]
Message-ID: <20110225020649.GB3087@dastard> (raw)
In-Reply-To: <1298584480.32230.416.camel@chandra-lucid.beaverton.ibm.com>

On Thu, Feb 24, 2011 at 01:54:40PM -0800, Chandra Seetharaman wrote:
> Hello,
> 
> I ran the xfs tests on my POWER box and was tripped by an ASSERT while
> running test 011. I have not seen it before in 2.6.37, so started with a
> git-bisect from 2.6.37 to 2.6.38-rc6 and ended at this commit:
> --------------------
> Author  Linus Torvalds <torvalds@linux-foundation.org>
>         Tue, 11 Jan 2011 19:42:06 +0000 (11:42 -0800)   
> committer       Linus Torvalds <torvalds@linux-foundation.org>
>         Tue, 11 Jan 2011 19:42:06 +0000 (11:42 -0800)   
> commit  7bc4a4ce68f8c6d064ea949446852e996526f692        
> Merge branch 'for-linus-merged' of git://oss.sgi.com/xfs/xfs
> 
> * 'for-linus-merged' of git://oss.sgi.com/xfs/xfs: (47 commits)
>   xfs: convert grant head manipulations to lockless algorithm
>   xfs: introduce new locks for the log grant ticket wait queues
>   xfs: convert log grant heads to atomic variables
>   xfs: convert l_tail_lsn to an atomic variable.
>   xfs: convert l_last_sync_lsn to an atomic variable
>   xfs: make AIL tail pushing independent of the grant lock
>   xfs: use wait queues directly for the log wait queues
>   xfs: combine grant heads into a single 64 bit integer
>   xfs: rework log grant space calculations
>   xfs: fact out common grant head/log tail verification code
>   xfs: convert log grant ticket queues to list heads
>   xfs: use AIL bulk delete function to implement single delete
>   xfs: use AIL bulk update function to implement single updates
>   xfs: remove all the inodes on a buffer from the AIL in bulk
>   xfs: consume iodone callback items on buffers as they are processed
>   xfs: reduce the number of AIL push wakeups
>   xfs: bulk AIL insertion during transaction commit
>   xfs: clean up xfs_ail_delete()
>   xfs: Pull EFI/EFD handling out from under the AIL lock
>   xfs: fix EFI transaction cancellation.
>   ...
> -----------------------------
> 
> Since it included so many patches, I thought i will start a git-bisect
> on xfs git tree at git://oss.sgi.com/xfs/xfs, and ended up at
> 92f1c008ae79e32b83c0607d184b194f302bb3ee, which is the same commit as
> above.

you landed on the the merge commit. mark that commit as bad, and the
bisect should continue down the merged branch. Otherwise you could
try skipping the merge commit and again the bisect should continue
down the branch.

> Two questions:
> 1. Has anybody seen this problem ? I see this ASSERT has been added in
> that patch set, is it a false-positive ?

The ASSERT() being triggered is racy. We are comparing the state of
two different atomic variables that are updated without
synchronisation. Hence after sampling the first, the second could be
changed before it is sampled and hence cause the assert to fail.

I've never seen it be triggered, so I'm interested to know if this
is reproducable (i.e. a real problem) or whether it is a false
trigger (i.e. update race).

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

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

  reply	other threads:[~2011-02-25  2:04 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-24 21:54 xfstests 011 trips an ASSERT Chandra Seetharaman
2011-02-25  2:06 ` Dave Chinner [this message]
2011-02-25 17:16   ` Chandra Seetharaman
2011-02-26  2:00   ` Chandra Seetharaman

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=20110225020649.GB3087@dastard \
    --to=david@fromorbit.com \
    --cc=sekharan@us.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox