diff options
author | Poornima G <pgurusid@redhat.com> | 2016-08-25 10:25:24 +0530 |
---|---|---|
committer | Raghavendra G <rgowdapp@redhat.com> | 2016-08-27 05:18:49 -0700 |
commit | 3f5273e19af2eaa7bc33c6abaf6b10850f97dcc0 (patch) | |
tree | 606a26d16b8d7f7754356338cdc825729da3f18e /tests | |
parent | be93ca2b9f3f1bb5d38b0fd306c19c4b3d0923f7 (diff) |
md-cache: Do not use features.cache-invalidation for both md-cache and upcall
Currently, the volume set option features.cache-invalidation enables upcall
feature on server side and md-cache cache-invalidation on client side.
There are multiple problems that can arise from this:
1. The scenario when user wants to, enable upcall for nfs-ganesha setup,
but do not want to enable md-cache cache-invalidation, as the
nfs-clients have already cached the metadata and upcall is used to
to invalidate the nfs-client cache. In this case, users should have
a way of disabling md-cache invalidation without disabling upcall.
2. Upcall requires a op-version of GD_OP_VERSION_3_7_0, where as
md-cache invalidation requires an op version of GD_OP_VERSION_3_9_0.
Consider a setup where the servers are in op-version GD_OP_VERSION_3_7_0,
and th clients are in op-version GD_OP_VERSION_3_9_0. if there is one
single volume set option, user can enable this feature in this setup.
But it can lead to stale xattr cache as the xattr invalidation was
introduced in upcall only in release 3.8. Hence, we should not be
able to enable md-cache invalidation, if all the servers and clients
are not on opversion >= GD_OP_VERSION_3_9_0.
To solve the above mentioned issues, we have seperate volume options
for enabling md-cache invalidation and upcall. But this can lead to
issues when user enable md-cache invalidation and forgets to enable
upcall. Probably in the next release, these can be enables by default.
Change-Id: Ie70eff97fe12fcb623eec8f4f5861ac065bf483e
BUG: 1211863
Signed-off-by: Poornima G <pgurusid@redhat.com>
Reviewed-on: http://review.gluster.org/15314
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: soumya k <skoduri@redhat.com>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bugs/md-cache/bug-1211863.t | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/tests/bugs/md-cache/bug-1211863.t b/tests/bugs/md-cache/bug-1211863.t index 4fa9e33d7a1..ece42fe8d81 100644 --- a/tests/bugs/md-cache/bug-1211863.t +++ b/tests/bugs/md-cache/bug-1211863.t @@ -42,16 +42,17 @@ EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M1 TEST $CLI volume set $V0 features.cache-invalidation on TEST $CLI volume set $V0 features.cache-invalidation-timeout 600 +TEST $CLI volume set $V0 performance.cache-invalidation on -## 18. Restart the volume to restart the bick process +## 19. Restart the volume to restart the bick process TEST $CLI volume stop $V0 TEST $CLI volume start $V0 -## 20. Create two gluster mounts +## 21. Create two gluster mounts TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M0 TEST glusterfs --volfile-id=/$V0 --volfile-server=$H0 $M1 -## 22. Repeat the tests 11-14, but this time since cache invalidation is on, +## 23. Repeat the tests 11-14, but this time since cache invalidation is on, #the getxattr will reflect the new value TEST "setfattr -n user.DOSATTRIB -v "abc" $M0/file1" TEST "getfattr -n user.DOSATTRIB $M1/file1 | grep -q abc" |