duplicate entries on ext3 when using readdir/readdir64

Thomas Trauner tt at it-austria.net
Tue Aug 5 10:53:51 UTC 2008


On Fri, 2008-08-01 at 08:16 -0400, Theodore Tso wrote:
> On Fri, Aug 01, 2008 at 11:43:40AM +0200, Thomas Trauner wrote:
> > 
> > I have a problem with directories that contain more than 10000 entries
> > (Ubuntu 8.04.1) or with more than 70000 entries (RHEL 5.2). If you use
> > readdir(3) or readdir64(3) you get one entry twice, with same name and
> > inode.
> > 
> 
> How reproducible is this; can you reproduce it on this one filesystem?
> Can you reproduce it on multiple filesystems?  What sort of file names
> are you using?

I made new tests with the code under
<http://www.unet.univie.ac.at/~a9100884/readdir.c> on a bunch of freshly
generated and empty filesystems, every about 38GB large, of type fat
(aborted after about 22000 entries because it took to long), ext2, xfs,
jfs and again ext3. All tests made with 2.6.24-19-generic (ubuntu
8.04.1).

I also tried minix fs, just for fun, but I could only create 126 files.

Ext3 shows the same effect as before, but at 103033 entries (readdir)
and 104136 entries (readdir64). 'ls|sort -n|uniq -d' output (ls uses
getdents64, so I asume it uses readdir64, but I don't checked the ls
source):

        root at darfnix:/readdir/ext3/testdir# ls|sort -n|uniq -d
        102456
        root at darfnix:/readdir/ext3/testdir# 

Can I do anything else?

Regards
Tom




More information about the Ext3-users mailing list