diff options
author | Pranith Kumar K <pkarampu@redhat.com> | 2015-12-01 10:59:41 +0530 |
---|---|---|
committer | Xavier Hernandez <xhernandez@datalab.es> | 2015-12-01 09:21:47 -0800 |
commit | 1a88359040ef1c68bcbe86a01d13a996a8adbb27 (patch) | |
tree | 6759300e21e28254b3a6a819c6b5e58fabaf81b6 /tests | |
parent | 21e1782d2b8adc5f668c10a52613e45b627e9bb2 (diff) |
cluster/ec: Create copy of dict for setting internal xattrs
Backport of http://review.gluster.com/12831
Problem:
Ec takes a ref of the request xdata and sets trusted.ec.version/algo etc xattrs
as part of it. But this request xdata could be using same dictionary to do the
operation on multiple subvolumes, due to which other subvolumes will have
internal xattrs of ec in it and will be created on subvols where they are not
supposed to appear.
Fix:
Take a copy of the request xdata/dict to prevent this from happening.
Most of the debugging work and test script is contributed by Nitya.
BUG: 1286985
Change-Id: Ie9b7d9f063434789f6c5902c3a68ececdc3c7efa
Signed-off-by: Pranith Kumar K <pkarampu@redhat.com>
Reviewed-on: http://review.gluster.org/12835
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Xavier Hernandez <xhernandez@datalab.es>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/basic/tier/tier-file-create.t | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/basic/tier/tier-file-create.t b/tests/basic/tier/tier-file-create.t new file mode 100644 index 00000000000..28caacd2a5a --- /dev/null +++ b/tests/basic/tier/tier-file-create.t @@ -0,0 +1,59 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../tier.rc + + +NUM_BRICKS=3 +DEMOTE_FREQ=5 +PROMOTE_FREQ=5 + + + +# Creates a tiered volume with pure distribute hot and cold tiers +# Both hot and cold tiers will have an equal number of bricks. + +function create_dist_tier_vol () { + mkdir $B0/cold + mkdir $B0/hot + TEST $CLI volume create $V0 disperse 6 disperse-data 4 $H0:$B0/cold/${V0}{1..12} + TEST $CLI volume set $V0 performance.quick-read off + TEST $CLI volume set $V0 performance.io-cache off + TEST $CLI volume set $V0 features.ctr-enabled on + TEST $CLI volume start $V0 + TEST $CLI volume attach-tier $V0 replica 2 $H0:$B0/hot/${V0}{0..$1} + TEST $CLI volume set $V0 cluster.tier-demote-frequency $DEMOTE_FREQ + TEST $CLI volume set $V0 cluster.tier-promote-frequency $PROMOTE_FREQ + TEST $CLI volume set $V0 cluster.read-freq-threshold 0 + TEST $CLI volume set $V0 cluster.write-freq-threshold 0 + TEST $CLI volume set $V0 cluster.tier-mode test +} + + +cleanup; + +#Basic checks +TEST glusterd +TEST pidof glusterd +TEST $CLI volume info + + +#Create and start a tiered volume +create_dist_tier_vol $NUM_BRICKS + +# Mount FUSE +TEST glusterfs -s $H0 --volfile-id $V0 $M0 + +cd $M0 + +touch FILE1 + +HPATH=`find $B0/hot/ -name FILE1 | cut -d " " -f1` +echo $HPATH + +TEST ! getfattr -n "trusted.ec.size" $HPATH +cd + +cleanup; + |