aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
AgeCommit message (Collapse)Author
2022-01-11Make --repair-path also repair corrupt optimised linksGuillaume Maudoux
There already existed a smoke test for the link content length, but it appears that there exists some corruptions pernicious enough to replace the file content with zeros, and keeping the same length. --repair-path now goes as far as checking the content of the link, making it true to its name and actually repairing the path for such coruption cases.
2022-01-10'target' points to 'source'Eelco Dolstra
2022-01-10Merge branch 'recursive-nix-fix' of https://github.com/L-as/nixEelco Dolstra
2022-01-07DerivationGoal::loadDerivation(): Don't use derivationFromPath()Eelco Dolstra
This causes a recursive call to ensurePath(), which is not a good idea.
2022-01-06Merge pull request #5749 from GavinRay97/patch-1Domen Kožar
Better diagnostics if no valid signature found
2021-12-22Remove CPU lockingEelco Dolstra
This was already accidentally disabled in ba87b08. It also no longer appears to be beneficial, and in fact slow things down, e.g. when evaluating a NixOS system configuration: elapsed time: median = 3.8170 mean = 3.8202 stddev = 0.0195 min = 3.7894 max = 3.8600 [rejected, p=0.00000, Δ=0.36929±0.02513]
2021-12-16Ignore EPERM when unsharing FS stateEelco Dolstra
On Docker (but not podman), unshare(CLONE_FS) fails with EPERM. So let's ignore it and hope nothing bad happens. Attempted fix for #5777.
2021-12-14Merge pull request #5769 from NixOS/ca/get-build-statsEelco Dolstra
Add a crude tracing mechansim for the build results
2021-12-14Merge pull request #5702 from baloo/baloo/hide-non-reproducible-settingsThéophane Hufschmitt
reproducibility: hide non-reproducible settings from manual
2021-12-14Merge pull request #5366 from trofi/speedup-ca-queryThéophane Hufschmitt
ca-specific-schema.sql: add index on RealisationsRefs(referrer)
2021-12-13queryMissing(): Use a bigger thread poolEelco Dolstra
This is a temporary hack until we make queryMissing() async. Closes #5324.
2021-12-13SimplifyEelco Dolstra
2021-12-13Merge branch 'arm32-personality' of https://github.com/cleverca22/nixEelco Dolstra
2021-12-13More debug infoEelco Dolstra
2021-12-13Retry on ECONNREFUSEDEelco Dolstra
https://hydra.nixos.org/build/161439235
2021-12-13Explicitly make GC roots client sockets blockingEelco Dolstra
On macOS / BSD, these sockets inherit the non-blocking flag of the server soocket, which is not what we want. https://github.com/dotnet/runtime/issues/25069 https://bugs.python.org/issue7995 https://hydra.nixos.org/build/161439304
2021-12-13Add a crude tracing mechansim for the build resultsregnat
Add a `_NIX_TRACE_BUILT_OUTPUTS` environment variable that can be set to a filename in which the result of each build will be logged. This is intentionally crude and undocumented as it’s only meant to be a temporary thing to assess the usefulness of CA derivations. Any other use would need a cleaner re-implementation first.
2021-12-13More properly track the status of CA buildsregnat
Make the build of unresolved derivations return the same status as the resolved one, except in the case of an `AlreadyValid` in which case it will return `ResolvesToAlreadyValid` to mean that the outputs of the unresolved derivation weren’t known, but the resolved one is.
2021-12-10Incorporate suggestions from @edolstraGavin Ray
2021-12-10Ignore system.nfs4_aclEelco Dolstra
Closes #1584.
2021-12-10Merge branch 'master' of https://github.com/MagicRB/nixEelco Dolstra
2021-12-09Merge pull request #5695 from obsidiansystems/tidy-loggingEelco Dolstra
Tidy up the logging
2021-12-08Better diagnostics if no valid signature foundGavin Ray
I downloaded Nix tonight, and immediately broke it by accidentally removing the default binary caching. After figuring this out, I also failed to fix it properly, due to using the wrong key for Nix's default binary cache If the diagnostic message would have been clearer about what/where a "signature" for a "substituter" is + comes from, it probably would have saved me a few hours. Maybe we can save other noobs the same pain?
2021-12-07Tweak warningEelco Dolstra
2021-12-07Merge remote-tracking branch 'origin/5712-ca-drvs-with-old-daemon'Eelco Dolstra
2021-12-06Update manual linksJan Tojnar
Fixes: https://github.com/NixOS/nixos-homepage/issues/762
2021-12-06Fallback when the daemon is too old for CA derivationsregnat
Fix #5712
2021-12-01Merge branch 'nix-env-install-suggestions' of https://github.com/tweag/nixEelco Dolstra
2021-12-01reproducibility: hide non-reproducible settings from manualArthur Gautier
Because the manual is generated from default values which are themselves generated from various sources (cpuid, bios settings (kvm), number of cores). This commit hides non-reproducible settings from the manual output.
2021-11-30Fix #5299John Ericson
No matter what, we need to resize the buffer to not have any scratch space after we do the `read`. In the end of file case, `got` will be 0 from it's initial value. Before, we forgot to resize in the EOF case with the break. Yes, we know we didn't recieve any data in that case, but we still have the scatch space to undo. Co-Authored-By: Will Fancher <Will.Fancher@Obsidian.Systems>
2021-11-30Push wopAddToStore old style stream adapters into smaller scopesJohn Ericson
This doesn't fix the bug, but makes the code less difficult to read. Also improve the comments, now that it is clear what part is needed in each code path.
2021-11-30Nix daemon stream old wopAddToStoreJohn Ericson
No more buffering in string.
2021-11-30Tidy up the loggingJohn Ericson
Use the macros more, so we properly skip work when the log level excludes. Also log the daemon operation number on the daemon side.
2021-11-25Merge pull request #5603 from obsidiansystems/recursive-nix-system-featureEelco Dolstra
"recursive-nix" system feature only with experimental feature
2021-11-25Make recursive-nix work even when not privilegedLas Safin
Before this, `setns` would fail when switching to the mount namespace, since we did not have the privileges to do so when not root. Closes #5360
2021-11-23"recursive-nix" system feature only with experimental featureJohn Ericson
2021-11-23Fix use after free in content-address.ccAlex Shabalin
Inspired by https://github.com/NixOS/nix/pull/5599
2021-11-23Merge pull request #5628 from matthewbauer/rosetta2-new-pathEelco Dolstra
Set new rosetta 2 path in sandbox
2021-11-22Set new rosetta 2 path in sandboxMatthew Bauer
see: https://github.com/NixOS/nix/pull/5388 and https://github.com/NixOS/nix/pull/5251
2021-11-22Unify #if linuxAlex Shabalin
2021-11-19Fix build warnings on MacOSAlex Shabalin
2021-11-18Offer suggestions for nix-env -iAlex Shabalin
Closes https://github.com/NixOS/nix/issues/972
2021-11-18Merge branch 'accept_conf' of https://github.com/tomberek/nixEelco Dolstra
2021-11-18SimplifyEelco Dolstra
2021-11-18Fix stack buffer overflowFarid Zakaria
Fix a stack buffer overflow found by running MemorySanitizer.
2021-11-16Merge pull request #5472 from NixOS/async-realisation-substitutionEelco Dolstra
async realisation substitution
2021-11-12Adds an accept-flake-config flagTom Bereknyei
2021-11-12TypoEelco Dolstra
2021-11-10ca-specific-schema.sql: add index on RealisationsRefs(referrer) and (outputPath)Sergei Trofimovich
For a typical desktop system (~2K packages) we can easily get 100K entries in RealisationsRefs. Without indices query for RealisationsRefs requires linear scan. RealisationsRefs(referrer) -------------------------- Inefficiency is seen as a 100% CPU load of nix-daemon for the following scenario: $ nix edit -f . bash # add unused environment variable, like FOO="1" # populate RealisationsRefs, build fresh system $ nix build -f nixos system --arg config '{ contentAddressedByDefault = true; }' $ nix edit -f . bash # add unused environment variable, like FOO="2" $ time nix build -f nixos system --arg config '{ contentAddressedByDefault = true; }' In this case `bash `will be rebuilt a few times and then rest of CPU time is spent on scanning RealisationsRefs table (about 5 CPU-minutes on my machine). Before the change: $ time nix build -f nixos system ... # step 4 above real 34m3,613s user 0m5,232s sys 0m0,758s Of all this time about 29.5 minutes are taken by nix-daemon's CPU time. After the change: $ time nix build -f nixos system ... # step 4 above real 4m50,061s user 0m5,038s sys 0m0,677s Of all this time about 1 minute is taken by nix-daemon's CPU time. Most of the time is spent polling for non-existent realisations on cache-nixos.org. Realisations(outputPath) ------------------------ After running CA system for two weeks I got ~1M entries in Realisations table. `nix-collect-garbage` became very slow (seemingly 100 path deletions per second). It happens due to a slow cascading delete from Realisations triggered by deletion from ValidPaths. The fix is to add an index on primary key from ValidPaths(id) that triggers cascading deletions. Before the change: $ time nix-collect-garbage -d --max-freed 100G <interrupted before finish, took too long> real 23m32.411s user 17m49.679s sys 4m50.609s Most of time was spent in re-scanning Realisations table on each path deletion. After the change: $ time nix-collect-garbage -d --max-freed 100G real 8m43.226s user 6m16.317s sys 1m40.188s Time is spent scanning sqlite indices and in kernel when unlinking directories.
2021-11-09Merge pull request #5494 from tweag/balsoft/allow-references-in-addPathEelco Dolstra
Allow references in addPath