Hello, talking with the btrfs people, they are specially aware of a problem related to writing files to disk "properly".
I think 'nix' does not 'fsync' on every file it writes to the store; does it? in non-chroot, it even isn't nix who puts the files in the store, so... Without fsync, there is no guarantee that the files will be on place on a crash. As the sqlite database cares on its fsync, the database will not be very correct about the files in the store. ext3 filesystem had a particular case of 'sync all before any mv', to guarantee the 'mv' atomic, but other filesystems don't sync all on mv. Look at the "Delayed allocation and potential data loss" part of the article in http://en.wikipedia.org/wiki/Ext4 So, user tools have to be written properly, so they fsync data before 'mv'. Of course I mention all this because I have my /nix/store with zero-length files, most of them related to upstart, which rendered my system quite unusable for the recent nixos generations. Shouldn't we have proper fsyncs (even syncs maybe) to guarantee the database to map well with the store? Or we have an "ext3-conditions-only" package manager? :) If anyone knows the issue better, perfect. I'm just writing this as I already have a dozen of broken files in the store. Regards, Lluís _______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev