diff options
author | Ravishankar N <ravishankar@redhat.com> | 2014-09-03 20:49:53 +0000 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2014-09-05 22:19:33 -0700 |
commit | 15a2088da508539a292f2a1863377dc40d264c8c (patch) | |
tree | ed4d10aa233ff14f901a5071cbad994fd20303c5 /tests | |
parent | d2600dfda2b8f87b5f08d96abfb2abc0677151e0 (diff) |
cluster/afr: perform list-xattr during lookup
Detect and heal mismatching user extended attributes during lookup.
'Forward' port of http://review.gluster.org/#/c/7444/
Change-Id: Id03c9746f083ffd3014711d0b3a2e5a71a45eed4
BUG: 1134691
Signed-off-by: Ravishankar N <ravishankar@redhat.com>
Reviewed-on: http://review.gluster.org/8558
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Tested-by: Pranith Kumar Karampuri <pkarampu@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bugs/bug-1130892.t | 2 | ||||
-rw-r--r-- | tests/bugs/bug-1134691-afr-lookup-metadata-heal.t | 50 |
2 files changed, 51 insertions, 1 deletions
diff --git a/tests/bugs/bug-1130892.t b/tests/bugs/bug-1130892.t index 438e795d571..206778f2938 100644 --- a/tests/bugs/bug-1130892.t +++ b/tests/bugs/bug-1130892.t @@ -49,7 +49,7 @@ TEST stat $M0/one # Check pending xattrs EXPECT "00000000" afr_get_specific_changelog_xattr $B0/${V0}-0/one trusted.afr.$V0-client-1 data EXPECT_NOT "00000000" afr_get_specific_changelog_xattr $B0/${V0}-0/one trusted.afr.$V0-client-1 entry -EXPECT_NOT "00000000" afr_get_specific_changelog_xattr $B0/${V0}-0/one trusted.afr.$V0-client-1 metadata +EXPECT "00000000" afr_get_specific_changelog_xattr $B0/${V0}-0/one trusted.afr.$V0-client-1 metadata TEST gluster volume set $V0 self-heal-daemon on EXPECT_WITHIN $PROCESS_UP_TIMEOUT "Y" glustershd_up_status diff --git a/tests/bugs/bug-1134691-afr-lookup-metadata-heal.t b/tests/bugs/bug-1134691-afr-lookup-metadata-heal.t new file mode 100644 index 00000000000..1fb1732a33f --- /dev/null +++ b/tests/bugs/bug-1134691-afr-lookup-metadata-heal.t @@ -0,0 +1,50 @@ +#!/bin/bash +#### Test iatt and user xattr heal from lookup code path #### + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc +cleanup; + +TEST glusterd +TEST pidof glusterd +TEST $CLI volume create $V0 replica 3 $H0:$B0/brick{0,1,2} +TEST $CLI volume start $V0 +TEST $CLI volume set $V0 cluster.self-heal-daemon off +TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M0 --attribute-timeout=0 --entry-timeout=0 + +cd $M0 +TEST touch file +TEST setfattr -n user.attribute1 -v "value" $B0/brick0/file +TEST kill_brick $V0 $H0 $B0/brick2 +TEST chmod +x file +iatt=$(stat -c "%g:%u:%A" file) + +TEST $CLI volume start $V0 force +EXPECT_WITHIN $PROCESS_UP_TIMEOUT "1" afr_child_up_status $V0 2 + +#Trigger metadataheal +TEST stat file + +#iattrs must be matching +iatt1=$(stat -c "%g:%u:%A" $B0/brick0/file) +iatt2=$(stat -c "%g:%u:%A" $B0/brick1/file) +iatt3=$(stat -c "%g:%u:%A" $B0/brick2/file) +EXPECT $iatt echo $iatt1 +EXPECT $iatt echo $iatt2 +EXPECT $iatt echo $iatt3 + +#xattrs must be matching +xatt1_cnt=$(getfattr -d $B0/brick0/file|wc|awk '{print $1}') +xatt2_cnt=$(getfattr -d $B0/brick1/file|wc|awk '{print $1}') +xatt3_cnt=$(getfattr -d $B0/brick2/file|wc|awk '{print $1}') +EXPECT "$xatt1_cnt" echo $xatt2_cnt +EXPECT "$xatt1_cnt" echo $xatt3_cnt + +#changelogs must be zero +xattr1=$(get_hex_xattr trusted.afr.$V0-client-2 $B0/brick0/file) +xattr2=$(get_hex_xattr trusted.afr.$V0-client-2 $B0/brick1/file) +EXPECT "000000000000000000000000" echo $xattr1 +EXPECT "000000000000000000000000" echo $xattr2 + +cd - +cleanup; |