Description of problem: =========================== I observe that the nl-cache limit is not being honoured. I changed the limit to 1MB for easier and faster reproducer and did a negative lookup for 1lakh files I saw with statedumps that the cache limit is not getting honoured [performance/nl-cache.negative-nl-cache] negative_lookup_hit_count=3255656 negative_lookup_miss_count=494935 get_real_filename_hit_count=0 get_real_filename_miss_count=0 nameless_lookup_count=0 inodes_with_positive_dentry_cache=0 inodes_with_negative_dentry_cache=0 dentry_invalidations_recieved=0 cache_limit=1048576 ====================>1 MB limit consumed_cache_size=2722520 =========================> more than 2MB exceeded inode_limit=104857 consumed_inodes=18 Version-Release number of selected component (if applicable): ======= [root@dhcp35-192 gluster]# rpm -qa|egrep "gluster|samba" gluster-nagios-addons-0.2.8-1.el7rhgs.x86_64 python-gluster-3.8.4-24.el7rhgs.noarch glusterfs-libs-3.8.4-24.el7rhgs.x86_64 glusterfs-fuse-3.8.4-24.el7rhgs.x86_64 glusterfs-api-devel-3.8.4-24.el7rhgs.x86_64 glusterfs-debuginfo-3.8.4-24.el7rhgs.x86_64 samba-common-4.6.3-0.el7rhgs.noarch samba-vfs-glusterfs-4.6.3-0.el7rhgs.x86_64 gluster-nagios-common-0.2.4-1.el7rhgs.noarch samba-common-tools-4.6.3-0.el7rhgs.x86_64 samba-common-libs-4.6.3-0.el7rhgs.x86_64 glusterfs-3.8.4-24.el7rhgs.x86_64 glusterfs-api-3.8.4-24.el7rhgs.x86_64 glusterfs-cli-3.8.4-24.el7rhgs.x86_64 glusterfs-devel-3.8.4-24.el7rhgs.x86_64 glusterfs-geo-replication-3.8.4-24.el7rhgs.x86_64 glusterfs-rdma-3.8.4-24.el7rhgs.x86_64 samba-4.6.3-0.el7rhgs.x86_64 samba-client-4.6.3-0.el7rhgs.x86_64 vdsm-gluster-4.17.33-1.1.el7rhgs.noarch glusterfs-client-xlators-3.8.4-24.el7rhgs.x86_64 glusterfs-server-3.8.4-24.el7rhgs.x86_64 glusterfs-events-3.8.4-24.el7rhgs.x86_64 samba-libs-4.6.3-0.el7rhgs.x86_64 samba-client-libs-4.6.3-0.el7rhgs.x86_64 Volume Name: negative Type: Distributed-Replicate Volume ID: 48c809a8-8a82-4806-aaf0-5ea0bbf423cb Status: Started Snapshot Count: 0 Number of Bricks: 2 x 2 = 4 Transport-type: tcp Bricks: Brick1: 10.70.35.215:/rhs/brick1/negative Brick2: 10.70.35.214:/rhs/brick1/negative Brick3: 10.70.35.215:/rhs/brick2/negative Brick4: 10.70.35.214:/rhs/brick2/negative Options Reconfigured: performance.nl-cache-limit: 1MB diagnostics.count-fop-hits: on diagnostics.latency-measurement: on features.cache-invalidation-timeout: 600 features.cache-invalidation: on performance.nl-cache: on nfs.disable: on transport.address-family: inet server.allow-insecure: on storage.batch-fsync-delay-usec: 0 [root@dhcp35-192 gluster]# Steps to Reproduce: 1.set up smb volume with nl cache enabled, and set cache limit to 1mb for easier reproducer 2.cifs mounted the volume 3. did a negative lookup of files as below ls file{1..100000} Actual results: ======== cache limit is not getting honoured Expected results: ============= cache limit should be honoured
Patch posted upstream: https://review.gluster.org/#/c/17110/
downstream patch : https://code.engineering.redhat.com/gerrit/#/c/106135/
Followed the steps to reproduce as mentioned below Steps to Reproduce: 1.set up smb volume with nl cache enabled, and set cache limit to 1mb for easier reproducer 2.cifs mounted the volume 3. did a negative lookup of files as below ls file{1..100000} The cache limit got honored.
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