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 doesntcope 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
signature.asc
Description: PGP signature
