[Bug 197336] find command cannot see more than 32765 subdirectories when using ZFS

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Feb 4 23:19:51 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197336

            Bug ID: 197336
           Summary: find command cannot see more than 32765 subdirectories
                    when using ZFS
           Product: Base System
           Version: 10.1-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: wdormann at gmail.com

Created attachment 152566
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=152566&action=edit
python script to generate a bunch of subdirectories with files in them

When a directory has more than 32765 subdirectories in it, the find command
fails to find all of the contents if the find command is executed in a ZFS
filesystem. 
If the same command is executed in another filesystem that FreeBSD supports
that also supports large counts of subdirectories, the find command sees
everything.  I've confirmed the correct behavior with both Reiserfs and
unionfs.  So it appears to be something about the interaction between find and
ZFS that triggers the bug.

Steps to reproduce:

1. Create a directory structure using the attached dirgen.py script
2. Verify the file count with the ls command. e.g.: ls -lR find_test_q65puW |
egrep "txt$" | wc -l
3. Verify the file count with the find command. e.g.: find find_test_q65puW
-name "*.txt" | wc -l

Actual results:
[~/test]$ python ./dirgen.py
ndirs: 300000 nfiles: 300000
[~/test]$ ls -l
total 219058
-rw-r--r--      1 user  user       861 Feb  4 15:30 dirgen.py
drwx------  32767 user  user    300002 Feb  4 15:31 find_test_q65puW
[~/test]$ ls -lR find_test_q65puW | egrep "txt$" | wc -l
  300000
[~/test]$ find find_test_q65puW -name "*.txt" | wc -l
   32765

The count is not complete. (32765 instead of 300000)

Expected results:
The find command should indicate that there are 300000 files.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list