summaryrefslogtreecommitdiffstats
path: root/tests/bugs
diff options
context:
space:
mode:
authorKrutika Dhananjay <kdhananj@redhat.com>2020-05-22 13:25:26 +0530
committerRinku Kothiya <rkothiya@redhat.com>2020-07-13 06:29:35 +0000
commitd8982b2eb65652d50bfc85bf8d9176301965305b (patch)
tree14b00e9573bab9e65e567ea611033224c2f2b2a9 /tests/bugs
parent1a91aa4dbbe096ac0eb06c2a2977b6d30e555114 (diff)
features/shard: Aggregate file size, block-count before unwinding removexattr
Posix translator returns pre and postbufs in the dict in {F}REMOVEXATTR fops. These iatts are further cached at layers like md-cache. Shard translator, in its current state, simply returns these values without updating the aggregated file size and block-count. This patch fixes this problem. Change-Id: I4b2dd41ede472c5829af80a67401ec5a6376d872 Fixes: #1243 Signed-off-by: Krutika Dhananjay <kdhananj@redhat.com> (cherry picked from commit 32519525108a2ac6bcc64ad931dc8048d33d64de)
Diffstat (limited to 'tests/bugs')
-rw-r--r--tests/bugs/shard/issue-1243.t12
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/bugs/shard/issue-1243.t b/tests/bugs/shard/issue-1243.t
index b0c092cdb45..ba22d2b74fe 100644
--- a/tests/bugs/shard/issue-1243.t
+++ b/tests/bugs/shard/issue-1243.t
@@ -1,6 +1,7 @@
#!/bin/bash
. $(dirname $0)/../../include.rc
+. $(dirname $0)/../../volume.rc
cleanup;
@@ -22,10 +23,21 @@ TEST $CLI volume set $V0 md-cache-timeout 10
# Write data into a file such that its size crosses shard-block-size
TEST dd if=/dev/zero of=$M0/foo bs=1048576 count=8 oflag=direct
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
+TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0
+
# Execute a setxattr on the file.
TEST setfattr -n trusted.libvirt -v some-value $M0/foo
# Size of the file should be the aggregated size, not the shard-block-size
EXPECT '8388608' stat -c %s $M0/foo
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
+TEST $GFS --volfile-id=$V0 --volfile-server=$H0 $M0
+
+# Execute a removexattr on the file.
+TEST setfattr -x trusted.libvirt $M0/foo
+
+# Size of the file should be the aggregated size, not the shard-block-size
+EXPECT '8388608' stat -c %s $M0/foo
cleanup