Description of problem: ----------------------- Our admin guide states that the range for rda-cache-limit is 0-1GB . Via CLI,I am able to set it as high as 100GB :: <Vol Info Snip> [root@gqas013 /]# gluster v info Volume Name: butcher Type: Distributed-Disperse Volume ID: c8ad4250-1821-482b-92fb-c60265c88a4b Status: Started Snapshot Count: 0 Number of Bricks: 12 x (4 + 2) = 72 Transport-type: tcp Bricks: Brick1: gqas013.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick2: gqas014.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick3: gqas015.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick4: gqas005.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick5: gqas006.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick6: gqas008.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick7: gqas013.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick8: gqas014.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick9: gqas015.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick10: gqas005.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick11: gqas006.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick12: gqas008.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick13: gqas013.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick14: gqas014.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick15: gqas015.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick16: gqas005.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick17: gqas006.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick18: gqas008.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick19: gqas013.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick20: gqas014.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick21: gqas015.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick22: gqas005.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick23: gqas006.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick24: gqas008.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick25: gqas013.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick26: gqas014.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick27: gqas015.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick28: gqas005.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick29: gqas006.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick30: gqas008.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick31: gqas013.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick32: gqas014.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick33: gqas015.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick34: gqas005.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick35: gqas006.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick36: gqas008.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick37: gqas013.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick38: gqas014.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick39: gqas015.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick40: gqas005.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick41: gqas006.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick42: gqas008.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick43: gqas013.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick44: gqas014.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick45: gqas015.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick46: gqas005.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick47: gqas006.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick48: gqas008.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick49: gqas013.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick50: gqas014.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick51: gqas015.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick52: gqas005.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick53: gqas006.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick54: gqas008.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick55: gqas013.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick56: gqas014.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick57: gqas015.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick58: gqas005.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick59: gqas006.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick60: gqas008.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick61: gqas013.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick62: gqas014.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick63: gqas015.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick64: gqas005.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick65: gqas006.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick66: gqas008.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick67: gqas013.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick68: gqas014.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick69: gqas015.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick70: gqas005.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick71: gqas006.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick72: gqas008.sbu.lab.eng.bos.redhat.com:/bricks12/brick Options Reconfigured: performance.rda-cache-limit: 100G performance.parallel-readdir: on network.inode-lru-limit: 50000 performance.md-cache-timeout: 600 performance.cache-invalidation: on performance.stat-prefetch: on features.cache-invalidation-timeout: 600 features.cache-invalidation: on transport.address-family: inet nfs.disable: on [root@gqas013 /]# </Vol Info Snip> And as low as -1 :) <Vol info snip> [root@gqas013 /]# gluster v info Volume Name: butcher Type: Distributed-Disperse Volume ID: c8ad4250-1821-482b-92fb-c60265c88a4b Status: Started Snapshot Count: 0 Number of Bricks: 12 x (4 + 2) = 72 Transport-type: tcp Bricks: Brick1: gqas013.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick2: gqas014.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick3: gqas015.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick4: gqas005.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick5: gqas006.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick6: gqas008.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick7: gqas013.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick8: gqas014.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick9: gqas015.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick10: gqas005.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick11: gqas006.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick12: gqas008.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick13: gqas013.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick14: gqas014.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick15: gqas015.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick16: gqas005.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick17: gqas006.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick18: gqas008.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick19: gqas013.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick20: gqas014.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick21: gqas015.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick22: gqas005.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick23: gqas006.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick24: gqas008.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick25: gqas013.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick26: gqas014.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick27: gqas015.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick28: gqas005.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick29: gqas006.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick30: gqas008.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick31: gqas013.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick32: gqas014.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick33: gqas015.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick34: gqas005.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick35: gqas006.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick36: gqas008.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick37: gqas013.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick38: gqas014.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick39: gqas015.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick40: gqas005.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick41: gqas006.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick42: gqas008.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick43: gqas013.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick44: gqas014.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick45: gqas015.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick46: gqas005.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick47: gqas006.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick48: gqas008.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick49: gqas013.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick50: gqas014.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick51: gqas015.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick52: gqas005.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick53: gqas006.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick54: gqas008.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick55: gqas013.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick56: gqas014.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick57: gqas015.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick58: gqas005.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick59: gqas006.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick60: gqas008.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick61: gqas013.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick62: gqas014.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick63: gqas015.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick64: gqas005.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick65: gqas006.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick66: gqas008.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick67: gqas013.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick68: gqas014.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick69: gqas015.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick70: gqas005.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick71: gqas006.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick72: gqas008.sbu.lab.eng.bos.redhat.com:/bricks12/brick Options Reconfigured: performance.rda-cache-limit: -1 performance.parallel-readdir: on network.inode-lru-limit: 50000 performance.md-cache-timeout: 600 performance.cache-invalidation: on performance.stat-prefetch: on features.cache-invalidation-timeout: 600 features.cache-invalidation: on transport.address-family: inet nfs.disable: on [root@gqas013 /]# </Vol info snip> I can even set it to "A" : <vol info snip> [root@gqas013 /]# gluster v info Volume Name: butcher Type: Distributed-Disperse Volume ID: c8ad4250-1821-482b-92fb-c60265c88a4b Status: Started Snapshot Count: 0 Number of Bricks: 12 x (4 + 2) = 72 Transport-type: tcp Bricks: Brick1: gqas013.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick2: gqas014.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick3: gqas015.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick4: gqas005.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick5: gqas006.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick6: gqas008.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick7: gqas013.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick8: gqas014.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick9: gqas015.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick10: gqas005.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick11: gqas006.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick12: gqas008.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick13: gqas013.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick14: gqas014.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick15: gqas015.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick16: gqas005.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick17: gqas006.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick18: gqas008.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick19: gqas013.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick20: gqas014.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick21: gqas015.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick22: gqas005.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick23: gqas006.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick24: gqas008.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick25: gqas013.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick26: gqas014.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick27: gqas015.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick28: gqas005.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick29: gqas006.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick30: gqas008.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick31: gqas013.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick32: gqas014.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick33: gqas015.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick34: gqas005.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick35: gqas006.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick36: gqas008.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick37: gqas013.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick38: gqas014.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick39: gqas015.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick40: gqas005.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick41: gqas006.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick42: gqas008.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick43: gqas013.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick44: gqas014.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick45: gqas015.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick46: gqas005.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick47: gqas006.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick48: gqas008.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick49: gqas013.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick50: gqas014.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick51: gqas015.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick52: gqas005.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick53: gqas006.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick54: gqas008.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick55: gqas013.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick56: gqas014.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick57: gqas015.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick58: gqas005.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick59: gqas006.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick60: gqas008.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick61: gqas013.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick62: gqas014.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick63: gqas015.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick64: gqas005.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick65: gqas006.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick66: gqas008.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick67: gqas013.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick68: gqas014.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick69: gqas015.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick70: gqas005.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick71: gqas006.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick72: gqas008.sbu.lab.eng.bos.redhat.com:/bricks12/brick Options Reconfigured: performance.rda-cache-limit: A performance.parallel-readdir: on network.inode-lru-limit: 50000 performance.md-cache-timeout: 600 performance.cache-invalidation: on performance.stat-prefetch: on features.cache-invalidation-timeout: 600 features.cache-invalidation: on transport.address-family: inet nfs.disable: on [root@gqas013 /]# <vol info snip> Version-Release number of selected component (if applicable): ------------------------------------------------------------- samba-4.6.2-0.el7rhgs.x86_64 glusterfs-3.8.4-20.el7rhgs.x86_64 How reproducible: ----------------- Every which way I try Actual results: --------------- rda-cache-limit accepts literally anything as value. Expected results: ----------------- The range should be adhered to and it should pick values that make sense - CLI should complain if I pass a character instead of a number.
There seems to be no CLI validation with "performance.parallel-readdir" as well : [root@gqas013 /]# gluster v set butcher performance.parallel-readdir ABCD volume set: success [root@gqas013 /]# Vol Info : Volume Name: butcher Type: Distributed-Disperse Volume ID: c8ad4250-1821-482b-92fb-c60265c88a4b Status: Started Snapshot Count: 0 Number of Bricks: 12 x (4 + 2) = 72 Transport-type: tcp Bricks: Brick1: gqas013.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick2: gqas014.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick3: gqas015.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick4: gqas005.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick5: gqas006.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick6: gqas008.sbu.lab.eng.bos.redhat.com:/bricks1/brick Brick7: gqas013.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick8: gqas014.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick9: gqas015.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick10: gqas005.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick11: gqas006.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick12: gqas008.sbu.lab.eng.bos.redhat.com:/bricks2/brick Brick13: gqas013.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick14: gqas014.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick15: gqas015.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick16: gqas005.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick17: gqas006.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick18: gqas008.sbu.lab.eng.bos.redhat.com:/bricks3/brick Brick19: gqas013.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick20: gqas014.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick21: gqas015.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick22: gqas005.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick23: gqas006.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick24: gqas008.sbu.lab.eng.bos.redhat.com:/bricks4/brick Brick25: gqas013.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick26: gqas014.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick27: gqas015.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick28: gqas005.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick29: gqas006.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick30: gqas008.sbu.lab.eng.bos.redhat.com:/bricks5/brick Brick31: gqas013.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick32: gqas014.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick33: gqas015.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick34: gqas005.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick35: gqas006.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick36: gqas008.sbu.lab.eng.bos.redhat.com:/bricks6/brick Brick37: gqas013.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick38: gqas014.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick39: gqas015.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick40: gqas005.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick41: gqas006.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick42: gqas008.sbu.lab.eng.bos.redhat.com:/bricks7/brick Brick43: gqas013.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick44: gqas014.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick45: gqas015.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick46: gqas005.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick47: gqas006.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick48: gqas008.sbu.lab.eng.bos.redhat.com:/bricks8/brick Brick49: gqas013.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick50: gqas014.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick51: gqas015.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick52: gqas005.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick53: gqas006.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick54: gqas008.sbu.lab.eng.bos.redhat.com:/bricks9/brick Brick55: gqas013.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick56: gqas014.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick57: gqas015.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick58: gqas005.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick59: gqas006.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick60: gqas008.sbu.lab.eng.bos.redhat.com:/bricks10/brick Brick61: gqas013.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick62: gqas014.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick63: gqas015.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick64: gqas005.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick65: gqas006.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick66: gqas008.sbu.lab.eng.bos.redhat.com:/bricks11/brick Brick67: gqas013.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick68: gqas014.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick69: gqas015.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick70: gqas005.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick71: gqas006.sbu.lab.eng.bos.redhat.com:/bricks12/brick Brick72: gqas008.sbu.lab.eng.bos.redhat.com:/bricks12/brick Options Reconfigured: performance.parallel-readdir: ABCD network.inode-lru-limit: 50000 performance.md-cache-timeout: 600 performance.cache-invalidation: on performance.stat-prefetch: on features.cache-invalidation-timeout: 600 features.cache-invalidation: on transport.address-family: inet nfs.disable: on [root@gqas013 /]#
There are two issues: 1. Bound check 0-1GB 2. Validating the value so that junk values are not accepted. I am not sure about the buond, if users have really large RAM, they might as well specify more than 1 GB. Also in case of lower bound, 0 is not allowed, but specifying any other lower value sets the default to 4K cache size and request size. The fix for the second is posted upstream : https://review.gluster.org/#/c/17008/
Poornima, Do you think then we should remove it from the doc too?
downstream patch : https://code.engineering.redhat.com/gerrit/#/c/103634/
*performance.parallel-readdir* works fine,it is accepting ONLY boolean variables. I have a problem with performance.rda-cache-limit , though : It allows me to set it to 2G,but fails when I try to set it to 3 GB,while complaining 1GB to be the limit for the tunable.: [root@gqas013 ~]# gluster v set testvol rda-cache-limit 3GB volume set: failed: '1610612736' in 'option rda-cache-limit 1610612736B' is out of range [0 - 1073741824] [root@gqas013 ~]# [root@gqas013 ~]# [root@gqas013 ~]# gluster v set testvol rda-cache-limit 2GB volume set: success On a chat with Poornima,it appears that the size this tunable sets is per RDA instance. Either way the error shown on the CLI is a bit confusing.It appears as if I can set the value of the tunable beyond its bounds. Moving this back to Assigned for a relook.
I need to understand what does "it appears that the size this tunable sets is per RDA instance." mean. In my setup I could see the following: root@ac02862b160d:/home/rhs-glusterfs# glusterd root@ac02862b160d:/home/rhs-glusterfs# gluster v create test-vol 172.17.0.2:/tmp/b1 force volume create: test-vol: success: please start the volume to access data root@ac02862b160d:/home/rhs-glusterfs# gluster v start test-vol volume start: test-vol: success root@ac02862b160d:/home/rhs-glusterfs# gluster v set test-vol rda-cache-limit 2GB volume set: failed: '2147483648' in 'option rda-cache-limit 2GB' is out of range [0 - 1073741824] root@ac02862b160d:/home/rhs-glusterfs# gluster v set test-vol rda-cache-limit 3GB volume set: failed: '3221225472' in 'option rda-cache-limit 3GB' is out of range [0 - 1073741824] root@ac02862b160d:/home/rhs-glusterfs# gluster v set test-vol rda-cache-limit 1GB volume set: success
The total cache limit is devided by the distribute count to get the cache size for per rda instance. The max limit of 1 GB is per RDA instance limit, i.e. if there are 2 distribute count, setting cache limit to 2GB works fine.
Ideally we would want to remove the 1GB limit, as it can be set to larger value in systems with large RAM. But changing the limit will break backward compatibility. One of the solutions is to set the 1 GB limit as a whole, i.e. even for 3 distribute volume allowing only 1GB of cache limit.
upstream patch : https://review.gluster.org/#/c/17338/
downstream patch : https://code.engineering.redhat.com/gerrit/#/c/106815/
Verified on 3.8.4-27. No garbage values can be set anymore,for both the tunables. rda cache limit seems sufficiently customisable for the admin.
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