Red Hat Bugzilla – Bug 980548
intermittent failures of tests/bugs/bug-888174.t
Last modified: 2013-08-13 08:26:23 EDT
Description of problem:
If we run tests/bugs/bug-888174.t of test framework in a while loop it fails intermittently.
Results of failed run:
Test Summary Report
./tests/bugs/bug-888174.t (Wstat: 0 Tests: 25 Failed: 4)
Failed tests: 22-25
Version-Release number of selected component (if applicable):
Steps to Reproduce:
REVIEW: http://review.gluster.org/5274 (cluster/afr: Make sure flush is unwound after post-op) posted (#1) for review on master by Pranith Kumar Karampuri (firstname.lastname@example.org)
REVIEW: http://review.gluster.org/5274 (cluster/afr: post-op should complete before starting flush) posted (#2) for review on master by Pranith Kumar Karampuri (email@example.com)
COMMIT: http://review.gluster.org/5274 committed in master by Vijay Bellur (firstname.lastname@example.org)
Author: Pranith Kumar K <email@example.com>
Date: Wed Jul 3 05:23:46 2013 +0530
cluster/afr: post-op should complete before starting flush
At the moment afr-flush makes sure that a delayed post-op
is woken up but it does not wait for it to complete the
post-op before flush unwinds.
These are the steps that are happening:
1) flush fop comes on an fd which wakes up a delayed post-op
and continues with the flush fop.
2) post-op sends fsync on the wire.
3) flush completes and unwinds to fuse.
4) graph switch happens on the fuse mount disconnecting the
old graph's client connections to bricks.
5) xattrop after fsync fails with ENOTCONN because the
connections from old graph are taken down now.
Wait for post-op to complete before starting to flush.
We could make flush act similar to fsync (i.e.) wind
flush as is but wait for post-op to complete before unwinding
flush, but it is better to send flush as the final fop. So
wind of flush will start after post-op is complete. Had to
change fsync to accommodate this change.
Signed-off-by: Pranith Kumar K <firstname.lastname@example.org>
Tested-by: Gluster Build System <email@example.com>
Reviewed-by: Vijay Bellur <firstname.lastname@example.org>
REVIEW: http://review.gluster.org/5599 (mount/fuse: Add artifical delay before sending PARENT_DOWN) posted (#1) for review on master by Pranith Kumar Karampuri (email@example.com)