From 350860d6c136a1fa2336347e15ff298241965348 Mon Sep 17 00:00:00 2001 From: shylesh Date: Sun, 8 Jan 2012 16:50:54 +0530 Subject: BUG:764802-After 'rebalance', the gfid of the file gets changed Change-Id: I84204170be9044ad2f306c9fe73f5164406a22e7 BUG: 764802 Signed-off-by: shylesh --- dvm/764802/testcase | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100755 dvm/764802/testcase (limited to 'dvm/764802/testcase') diff --git a/dvm/764802/testcase b/dvm/764802/testcase new file mode 100755 index 0000000..f0a344a --- /dev/null +++ b/dvm/764802/testcase @@ -0,0 +1,85 @@ +#!/bin/bash + +source $cwd/regression_helpers + +BRICK1=$(hostname):$EXPORT_DIR/$global_bug_id/brick1 +BRICK2=$(hostname):$EXPORT_DIR/$global_bug_id/brick2 + +$GLUSTERFSDIR/gluster volume create $global_bug_id $BRICK1 1>/dev/null 2>/dev/null + +$GLUSTERFSDIR/gluster volume start $global_bug_id 2>/dev/null 1>/dev/null +sleep 5 + +mount_glusterfs $global_bug_id + +cd $FUSE_MOUNT + +for i in {1..10} +do + touch $i +done + + +# Capture the GFIDs of all the files +cd $EXPORT_DIR/$global_bug_id/brick1 + +for i in {1..10} +do + GFID_ARR[$i]=$(getfattr -d -e hex -n trusted.gfid -m . $i | grep trusted.gfid| cut -d "=" -f2) +done + +$GLUSTERFSDIR/gluster volume add-brick $global_bug_id $BRICK2 1>/dev/null 2>/dev/null +$GLUSTERFSDIR/gluster volume rebalance $global_bug_id start 1>/dev/null 2>/dev/null +sleep 2 + +status=0 +time_out=0 + +while [[ $status -ne 1 && $time_out -le 300 ]] +do + status=$($GLUSTERFSDIR/gluster volume rebalance $global_bug_id status| grep 'rebalance completed'|wc -l) + time_out=$(( $time_out + 1)) + sleep 1 +done + + +# for some reason rebalance is hung so we errout +# assuming 300 is fairly enough for rebalancing +# 10 files +if [ $time_out -gt 300 ]; then + exit 1 +fi + + +# now compare the GFIDs of all the files +# with the previously stored +for i in {1..10} +do + if [ -f "$EXPORT_DIR/$global_bug_id/brick1/$i" ] ; then + + GFID_ARR2[$i]=$(getfattr -d -e hex -n trusted.gfid -m . $EXPORT_DIR/$global_bug_id/brick1/$i 2>/dev/null\ + | grep trusted.gfid | cut -d "=" -f2) + + + if [ ${GFID_ARR[$i]} != ${GFID_ARR2[$i]} ]; then + exit 1 + fi + elif [ -f "$EXPORT_DIR/$global_bug_id/brick2/$i" ]; then + + GFID_ARR2[$i]=$(getfattr -d -e hex -n trusted.gfid -m . $EXPORT_DIR/$global_bug_id/brick2/$i 2>/dev/null\ + | grep trusted.gfid | cut -d "=" -f2) + + if [ ${GFID_ARR[$i]} != ${GFID_ARR2[$i]} ]; then + exit 1 + fi + else + echo "file not found" + exit 1 + fi +done + + +exit 0 + + + -- cgit