Bug 1575692

Summary: [GSS] use-readdirp=no fuse mount option seems to break syncing of file changes to other clients
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: Pan Ousley <pousley>
Component: fuseAssignee: Csaba Henk <csaba>
Status: CLOSED NOTABUG QA Contact: Rahul Hinduja <rhinduja>
Severity: medium Docs Contact:
Priority: medium    
Version: rhgs-3.2CC: atumball, bkunal, csaba, nbalacha, pousley, rgowdapp, rhs-bugs, sankarshan, sheggodu, smulay, spalai, storage-qa-internal
Target Milestone: ---Keywords: ZStream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-06-10 09:19:47 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:

Description Pan Ousley 2018-05-07 16:06:42 UTC
Description of problem: 

This is a 3 node gluster replicated volume where the servers host the brick as well as the client mount (three fuse clients are in use - one on each gluster storage node).

The customer reported that the use of use-readdirp=no mount option caused file changes to not reflect across all clients. Upon removing that mount option, the issue was no longer present.

The customer described the issue like this: "New files are replicated properly among all 3 nodes, however if I change an existing file the changes don't always get replicated [among the clients]. Sometimes one node might get the change and sometimes none will get the change (possibly never, although certainly not in minutes or maybe even hours).

The file contents are actually different, after the initial sync of a new file,  any editing does not get replicated to other nodes, i.e. "cat" on 2 different nodes show 2 different file contents...."


Version-Release number of selected component (if applicable): glusterfs-3.8.4-18.el7rhgs.x86_64 RHEL 7.4 (they said that the previous version, 3.1.x did not have this issue)


How reproducible: I was unable to reproduce it myself, but the customer reported that he could consistently reproduce it with regular usage.


Steps to Reproduce:

(The customer gave me the following steps):

1. Simply touch a file on one client. 
2. Wait for it to replicate the empty file to all other clients
3. Then edit the file with emacs or vi etc.   
4. Save and see if it updates the contents, date etc on the other nodes.


Actual results: The updated contents do not always reflect across the three clients. (The customer stated that he checked for the changes on the three clients, and may have also checked the bricks though he was not sure)


Expected results: The correct file contents should be shown on all clients after editing a file.


Additional info: I will paste the exact fstab entry and the volume info (there are a number of performance-related settings configured) in a private comment.

Also, please change the component if 'fuse' is incorrect. Thanks!