Re: A bug in ext4 with big directories (was: NVFS XFS metadata)

From: Mikulas Patocka
Date: Wed Sep 23 2020 - 08:47:12 EST




On Wed, 23 Sep 2020, Jan Kara wrote:

> Hi!
>
> On Wed 23-09-20 05:20:55, Mikulas Patocka wrote:
> > There seems to be a bug in ext4 - when I create very large directory, ext4
> > fails with -ENOSPC despite the fact that there is plenty of free space and
> > free inodes on the filesystem.
> >
> > How to reproduce:
> > download the program dir-test:
> > http://people.redhat.com/~mpatocka/benchmarks/dir-test.c
> >
> > # modprobe brd rd_size=67108864
> > # mkfs.ext4 /dev/ram0
> > # mount -t ext4 /dev/ram0 /mnt/test
> > # dir-test /mnt/test/ 8000000 8000000
> > deleting: 7999000
> > 2540000
> > file 2515327 can't be created: No space left on device
> > # df /mnt/test
> > /dev/ram0 65531436 633752 61525860 2% /mnt/test
> > # df -i /mnt/test
> > /dev/ram0 4194304 1881547 2312757 45% /mnt/test
>
> Yeah, you likely run out of space in ext4 directory h-tree. You can enable
> higher depth h-trees with large_dir feature (mkfs.ext4 -O large_dir). Does
> that help?

Yes, this helps.

Mikulas

>
> Honza
>
> --
> Jan Kara <jack@xxxxxxxx>
> SUSE Labs, CR