Description of problem: ----------------------- 2*2 volume,have parallel readir enabled and cache limit set to > 1GB,say 2GB. Set parallel readdir to "off". Try resetting the option to on.It will fail. [root@gqas013 ~]# gluster v set testvol performance.parallel-readdir on volume set: success [root@gqas013 ~]# gluster v set testvol performance.rda-cache-limit 2GB volume set: success [root@gqas013 ~]# gluster v set testvol performance.parallel-readdir off volume set: success [root@gqas013 ~]# gluster v set testvol performance.parallel-readdir on volume set: failed: '2147483648' in 'option rda-cache-limit 2GB' is out of range [0 - 1073741824] [root@gqas013 ~]# Version-Release number of selected component (if applicable): --------------------------------------------------------------- 3.8.4-23. How reproducible: ----------------- Always. Actual results: --------------- Re-enabling parallel readdir fails. Expected results: ----------------- Successful completion of the command. Additional info: ---------------- [root@gqas013 ~]# gluster v info Volume Name: testvol Type: Distributed-Replicate Volume ID: 7f5ae046-00d8-428c-a3f4-75e4f7515a82 Status: Started Snapshot Count: 0 Number of Bricks: 2 x 2 = 4 Transport-type: tcp Bricks: Brick1: gqas013.sbu.lab.eng.bos.redhat.com:/bricks/testvol_brick0 Brick2: gqas005.sbu.lab.eng.bos.redhat.com:/bricks/testvol_brick1 Brick3: gqas006.sbu.lab.eng.bos.redhat.com:/bricks/testvol_brick2 Brick4: gqas008.sbu.lab.eng.bos.redhat.com:/bricks/testvol_brick3 Options Reconfigured: performance.rda-cache-limit: 2GB performance.parallel-readdir: on server.allow-insecure: on performance.stat-prefetch: off transport.address-family: inet nfs.disable: on [root@gqas013 ~]#
When parallel readdir is enabled, the cache limit is (dist count * 1GB). Lets say the cache limit was set to 2 GB and then parallel readdir was disabled, the validation of rda-cache-limit fails, as the rda instance is only one(without parallel readdir) and the cache limit is set to 2GB more than the limit(1GB). Thus, mount or any other volume set etc will fail.
upstream patch : https://review.gluster.org/#/c/17338/
downstream patch : https://code.engineering.redhat.com/gerrit/#/c/106815/
Verified on 3.8.4-27. I am able to disable parallel readdir and access FUSE mounts from multiple clients.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2017:2774