Hmm, that looks like a constant that needs to be replaced with a config value…

 

That does appear to be an absolute hard limit on directory size (and if there 
are multiuple READDIR operations in progress, it would seem like you need even 
more).

 

One option would be to make it some percentage of the number of cache inodes 
allowed if we didn’t want to introduce a new config option.

 

Frank

 

From: Krishna Harathi [mailto:khara...@exablox.com] 
Sent: Monday, July 27, 2015 5:53 PM
To: nfs-ganesha-devel
Subject: [Nfs-ganesha-devel] Missing files from directory with large entries

 

In a test-case, we are finding that a few files(5) are missing  sometimes from 
a directory with  > 100K entries, while listing with "ls".

 

Debug logging is showing multiple entries with the following.

 

nfs-ganesha-5025[work-15] cache_inode_avl_insert_impl :INODE :DEBUG :inserted 
new dirent on entry=0x6780d300 cookie=1925138672 collisions 1 

 

I saw that in cache_inode_avl_insert_impl(), if I double this value of the 
check below, the problem

goes away apparently.

 

if ((!node) && (avltree_size(c) > 65535)) {
                /* ie, recycle the smallest deleted entry */
                node = avltree_first(c);
        }

 

 

Any insight into this problem is appreciated, we are using Ganesha 2.1.0. I 
also looked at recent changes/fixes in this area in the current code I don't 
think the recent code addresses this issue, but I may be wrong.




Regards.

Krishna Harathi

------------------------------------------------------------------------------
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

Reply via email to