BUG: task blocked on waiter in xfs_trans_dqlockedjoin()

Dave Chinner david at fromorbit.com
Mon Apr 16 19:09:39 CDT 2012


On Mon, Apr 16, 2012 at 08:34:21AM -0500, Alex Elder wrote:
> I am getting the following warning while running xfstests.  I haven't
> started looking at it closely yet, but I wanted to report it so others
> could have a look.  The XFS code in use was at commit c922bbc819,

Which does not modify locking at all.

> with ad637a10f4 cherry-picked on top of it.  The tests all passed,

And that modifies the way we do inode reclaim synchronisation by
ILOCK rather than by IOLOCK|ILOCK. Neither of these are touching the
dquot locking at all, so I'm having trouble understanding why these
commits would cause a problem with a dquot mutex....

> so now I'm going to have to narrow down which test produces the failure
> (it was not near the first, nor the last test...).
> 
> Here is the source of the warning:
>         DEBUG_LOCKS_WARN_ON(ti->task->blocked_on != waiter);

That implies that the task is currently trying to acquire two
mutexes at once - which I can't see is possible. How different are
the two values i.e. are you seeing memory corruption?

Also, what case is the code running through? is it taking the
xfs_dqlock2() branch, and if so are the two dquots different?

Cheers,

Dave.
-- 
Dave Chinner
david at fromorbit.com



More information about the xfs mailing list