lix/src
Chuck 3e2c77d001 Check for and repair bad .links entries
A corrupt entry in .links prevents adding a fixed version of that file
to the store in any path.  The user experience is that corruption
present in the store 'spreads' to new paths added to the store:

(With store optimisation enabled)

1. A file in the store gets corrupted somehow (eg: filesystem bug).
2. The user tries to add a thing to the store which contains a good copy
   of the corrupted file.
3. The file being added to the store is hashed, found to match the bad
   .links entry, and is replaced by a link to the bad .links entry.
   (The .links entry's hash is not verified during add -- this would
   impose a substantial performance burden.)
4. The user observes that the thing in the store that is supposed to be
   a copy of what they were trying to add is not a correct copy -- some
   files have different contents!  Running "nix-store --verify
   --check-contents --repair" does not fix the problem.

This change makes "nix-store --verify --check-contents --repair" fix
this problem.  Bad .links entries are simply removed, allowing future
attempts to insert a good copy of the file to succeed.
2019-11-15 11:55:36 -08:00
..
build-remote Typo 2019-11-13 17:18:17 +01:00
cpptoml bump cpptoml to v0.1.1 2019-05-29 17:01:39 +08:00
libexpr Merge pull request #3219 from Ericson2314/semicolons 2019-11-11 12:13:51 +01:00
libmain Disable OpenSSL lock callback on OpenSSL >= 1.1.1 2019-09-04 21:45:01 +02:00
libstore Check for and repair bad .links entries 2019-11-15 11:55:36 -08:00
libutil Merge pull request #3219 from Ericson2314/semicolons 2019-11-11 12:13:51 +01:00
nix Move editorFor srom libutil to nix 2019-11-08 15:13:32 +01:00
nix-build Simplification 2019-10-27 18:00:09 +01:00
nix-channel nix-env: Create ~/.nix-profile automatically 2019-10-09 23:35:01 +02:00
nix-collect-garbage Merge all nix-* binaries into nix 2018-10-26 12:54:00 +02:00
nix-copy-closure Merge all nix-* binaries into nix 2018-10-26 12:54:00 +02:00
nix-daemon Cleanup 2019-11-06 16:53:02 +01:00
nix-env nix-env: Ignore failures creating ~/.nix-profile and ~/.nix-defexpr 2019-10-10 09:14:05 +02:00
nix-instantiate Merge all nix-* binaries into nix 2018-10-26 12:54:00 +02:00
nix-prefetch-url nix-prefetch-url: Stop progress bar before printing results 2018-11-09 10:34:12 +01:00
nix-store Minor updates to inline comments 2019-10-31 05:56:37 -04:00
resolve-system-dependencies OCD performance fix: {find,count}+insert => insert 2019-10-09 16:06:29 +02:00