Brendan,

Brendan Tildesley 写道:
Closing since it seems to unrelated. Sorry for wasting your time. I think it may have been my ext4 having too many files. i deleted all my system generations and gc'd a lot of stuff, and it seems to be miss behaving. perhaps it is a different kind of guix bug that it doesnt
cope with this issue:

Worse: it's an ext4 bug (well, behaviour).

[ 7862.196231] EXT4-fs warning (device sdb1): ext4_dx_add_entry:2343:
Directory (ino: 24903688) index full, reach max htree level :2

This happens when a directory, almost certainly /gnu/store/.links, contains more entries than can fit in ext4's ‘dir_index’ hash table. The file system simply punts.

You can disable this optimisation with tune2fs -O ^dir_index …. You'll lose some theoretical performance but I haven't heard complaints in practice. You're not the first one to encounter this problem.

If that's unacceptable, you can reconfigure your guix-daemon with ‘--disable-deduplication’ in exchange for more storage space for newer generations.

Or switch to btrfs for a newer, shinier set of pathological gotchas but not this one :-)

One could work around this in Guix if one were motivated:
- Ignore file system failure instead of making it fatal, falling back to ‘--disable-deduplication’ behaviour, which is probably the right thing to do; or - store .links in ./n/e/sted directories, which will degrade performance on file systems that handle collisions properly and is probably not worth the headache.

Kind regards,

T G-R

Attachment: signature.asc
Description: PGP signature

Reply via email to