diff options
author | Pranith Kumar K <pkarampu@redhat.com> | 2013-05-22 15:18:19 +0530 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2013-06-10 13:04:21 -0700 |
commit | 2fda7a9de2edd624a03558d9a9a580e5639fef1f (patch) | |
tree | f1d13045cabeee7bd07be0110f1a58ed6a9838c4 /tests/bugs | |
parent | bb0bbfecd609fff1a3890775b3119a552aba0e18 (diff) |
cluster/afr: Perform delayed changelog wakeups for anon fdv3.4.0beta3
Problem:
Nfs xlator never does open on a file for performing writes,
afr does not perform changelog wakeup for this fd so operations
which do metadata operations as soon as the data operations are
completed perceive a delay od 'post-op-delay-secs'.
Fix:
Perform changelog wakeup on anon-fd if the fd with same pid is
not present in inode-list.
Note:
This approach is a short-term fix. A proper fix needs a new domain
for taking metadata locks so that data/metadata locks don't compete
with each other.
BUG: 966018
Change-Id: Ia9188a253e7943801b665e1b9205e2f551952d87
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/5067
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'tests/bugs')
-rw-r--r-- | tests/bugs/bug-966018.t | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/bugs/bug-966018.t b/tests/bugs/bug-966018.t new file mode 100644 index 000000000..f29690a1a --- /dev/null +++ b/tests/bugs/bug-966018.t @@ -0,0 +1,33 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc + +#This tests if eager-lock blocks metadata operations on nfs/fuse mounts. +#If it is not woken up, INODELK from the next command waits +#for post-op-delay secs. + +cleanup; +TEST glusterd +TEST pidof glusterd + +TEST $CLI volume create $V0 replica 2 $H0:$B0/r2_0 $H0:$B0/r2_1 +TEST $CLI volume set $V0 cluster.eager-lock on +TEST $CLI volume set $V0 cluster.post-op-delay-secs 3 + +TEST $CLI volume start $V0 +TEST $CLI volume profile $V0 start +sleep 5 +TEST mount -t nfs -o vers=3,nolock $H0:/$V0 $N0; +TEST glusterfs --entry-timeout=0 --attribute-timeout=0 -s $H0 --volfile-id=$V0 $M0 +echo 1 > $N0/1 && chmod +x $N0/1 +echo 1 > $M0/1 && chmod +x $M0/1 + +#Check that INODELK MAX latency is not in the order of seconds +#Test if the MAX INODELK fop latency is of the order of seconds. +inodelk_max_latency=$($CLI volume profile $V0 info | grep INODELK | awk 'BEGIN {max = 0} {if ($6 > max) max=$6;} END {print max}' | cut -d. -f 1 | egrep "[0-9]{7,}") + +TEST [ -z $inodelk_max_latency ] +TEST umount $N0 + +cleanup; |