diff options
author | Raghavendra G <rgowdapp@redhat.com> | 2018-06-28 05:55:09 +0530 |
---|---|---|
committer | Poornima G <pgurusid@redhat.com> | 2018-08-02 07:01:15 +0000 |
commit | 47cbe34db67be7bfbf925b3d76bb25d48b9ed680 (patch) | |
tree | 4d880318884238ada8e0e4f9610eb660c919fae0 /tests/bugs/bug-1368312.t | |
parent | 45b023aac0cafa93a43a078c7bc94c8f5b8c3cb7 (diff) |
performance/md-cache: update cache only from fops issued after previous invalidation
Invalidations are triggered mainly by two codepaths - upcall and
write-behind unwinding a cached write with zeroed out stat. For the
case of upcall, following race can happen:
* stat s1 is fetched from brick
* invalidation is detected on brick
* invalidation is propagated to md-cache and cache is invalidated
* s1 updates md-cache with a stale state
For the case of write-behind, imagine following sequence of operations,
* A stat s1 was issued from application thread t1 when size of file
was s1
* stat s1 completes on brick stack, but yet to reach md-cache
* A write w1 from application thread t2 extends file to size s2 is
cached in write-behind and response is unwound with zeroed out stat
* md-cache while handling write-cbk, invalidates cache
* md-cache receives response for s1, updates cache with stale stat
with size of s1 overwriting invalidation state
Fix is to remember when s1 was incident on md-cache and update cache
with results of s1 only if the it was incident after invalidation of
cache.
This patch identified some bugs in regression tests which is tracked
in https://bugzilla.redhat.com/show_bug.cgi?id=1608158. As a stop gap
measure I am marking following tests as bad
basic/afr/split-brain-resolution.t
bugs/bug-1368312.t
bugs/replicate/bug-1238398-split-brain-resolution.t
bugs/replicate/bug-1417522-block-split-brain-resolution.t
bugs/replicate/bug-1438255-do-not-mark-self-accusing-xattrs.t
Change-Id: Ia4bb9dd36494944e2d91e9e71a79b5a3974a8c77
Signed-off-by: Raghavendra G <rgowdapp@redhat.com>
Updates: bz#1512691
Diffstat (limited to 'tests/bugs/bug-1368312.t')
-rw-r--r-- | tests/bugs/bug-1368312.t | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/tests/bugs/bug-1368312.t b/tests/bugs/bug-1368312.t index 61e56060e81..c60d562bbd7 100644 --- a/tests/bugs/bug-1368312.t +++ b/tests/bugs/bug-1368312.t @@ -82,3 +82,5 @@ EXPECT 0 compare_get_split_brain_status ./tmp1 patchy-client-5 cd - cleanup +#G_TESTDEF_TEST_STATUS_NETBSD7=BAD_TEST,BUG=000000 +#G_TESTDEF_TEST_STATUS_CENTOS6=BAD_TEST,BUG=000000 |