Bug 1158123

Summary: Quick-read translator does not invalidate its cache
Product: [Community] GlusterFS Reporter: Philip Spencer <pspencer>
Component: quick-readAssignee: Milind Changire <mchangir>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: mainlineCC: atumball, bugs, nbalacha, rgowdapp, rkavunga
Target Milestone: ---Keywords: Patch, Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard: gluster-stale-cache, GLUSTERFS_METADATA_INCONSISTENCY
Fixed In Version: glusterfs-6.x, glusterfs-5.x Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-06-18 04:11:50 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Patch to make quick-read invalidate its cache when requested none

Description Philip Spencer 2014-10-28 16:01:33 UTC
Created attachment 951441 [details]
Patch to make quick-read invalidate its cache when requested

This is one of the "other bugs" mentioned in bug #1158120.

When running the same example as in that bug report on a filesystem mounted with o-direct, with that patch applied, then the output is sometimes correct

$ echo init > $D/f; cat $D/f; ssh $OTHER_HOST "echo second > $D/$f"; cat $D/f
init
second

but sometimes gives

$ echo init > $D/f; cat $D/f; ssh $OTHER_HOST "echo second > $D/$f"; cat $D/f
init
init
d

This is because the quick-read translator does not respond to cache invalidation requests. The attached patch makes it listen to invalidation requests and discard its cache.

Comment 1 Mohammed Rafi KC 2016-08-23 14:26:50 UTC
GlusterFS-3.6 is nearing its End-Of-Life, only important security bugs still make a chance on getting fixed. Moving this to the mainline 'version'. If this needs to get fixed in 3.7 or 3.8 this bug should get cloned

Comment 2 Amar Tumballi 2019-06-18 04:11:50 UTC
Thanks for the patch (long back), and I see that its already in the codebase!