about summary refs log tree commit diff
path: root/src/libstore
AgeCommit message (Collapse)AuthorFilesLines
2019-02-05 Revert "Restore parent mount namespace before executing a child process"Eelco Dolstra3-7/+0
This reverts commit a0ef21262f4d5652bfb65cfacaec01d89c475a93. This doesn't work in 'nix run' and nix-shell because setns() fails in multithreaded programs, and Boehm GC mark threads are uncancellable. Fixes #2646.
2019-01-18 unsupported(): Show the name of the unsupported operationEelco Dolstra4-76/+31
2019-01-05 Remove mentions of `libformat`, it no longer existsJohn Ericson1-1/+1
2018-12-12 libstore: improve hash mismatch error messageszimbatm3-6/+6
Use the same output ordering and format everywhere. This is such a common issue that we trade the single-line error message for more readability. Old message: ``` fixed-output derivation produced path '/nix/store/d4nw9x2sy9q3r32f3g5l5h1k833c01vq-example.com' with sha256 hash '08y4734bm2zahw75b16bcmcg587vvyvh0n11gwiyir70divwp1rm' instead of the expected hash '1xzwnipjd54wl8g93vpw6hxnpmdabq0wqywriiwmh7x8k0lvpq5m' ``` New message: ``` hash mismatch in fixed-output derivation '/nix/store/d4nw9x2sy9q3r32f3g5l5h1k833c01vq-example.com': wanted: sha256:1xzwnipjd54wl8g93vpw6hxnpmdabq0wqywriiwmh7x8k0lvpq5m got: sha256:08y4734bm2zahw75b16bcmcg587vvyvh0n11gwiyir70divwp1rm ```
2018-12-12 Fix assertion failure in NarInfoDiskCacheEelco Dolstra1-15/+15
https://hydra.nixos.org/build/85827920
2018-12-12 nar-info-disk-cache: include ca in the cache entriesDaiderd Jordan1-2/+5
Without this information the content addressable state and hashes are lost after the first request, this causes signatures to be required for everything even tho the path could be verified without signing.
2018-12-07 s3: make scheme configurableDaiderd Jordan3-7/+11
This enables using for http for S3 request for debugging or implementations that don't have https configured. This is not a problem for binary caches since they should not contain sensitive information. Both package signatures and AWS auth already protect against tampering.
2018-11-20 Merge pull request #2216 from dtzWill/fix/curl-760-timeoutEelco Dolstra1-1/+2
download: if there are active requests, never sleep for 10s
2018-11-15 Fix 'Read-only file system' when building a derivationEelco Dolstra1-0/+2
2018-11-13 Restore parent mount namespace before executing a child processEelco Dolstra2-0/+5
This ensures that they can't write to /nix/store. Fixes #2535.
2018-11-07 Enable sandboxing by defaultEelco Dolstra1-1/+7
Closes #179.
2018-11-01 Disable the S3 content-encoding patchEelco Dolstra1-1/+4
Since we're not using multi-part uploads at the moment, we can drop this patch.
2018-10-31 Merge pull request #2501 from mayflower/xdg_config_dirsEelco Dolstra1-1/+5
config: use all of XDG_CONFIG_DIRS
2018-10-31 config: use all of XDG_CONFIG_DIRSLinus Heckemann1-1/+5
Previously, config would only be read from XDG_CONFIG_HOME. This change allows reading config from additional directories, which enables e.g. per-project binary caches or chroot stores with the help of direnv.
2018-10-30 Remove redundant messageEelco Dolstra1-2/+0
2018-10-30 S3BinaryCacheStore: Allow disabling multipart uploadsEelco Dolstra1-31/+57
The use of TransferManager has several issues, including that it doesn't allow setting a Content-Encoding without a patch, and it doesn't handle exceptions in worker threads (causing termination on memory allocation failure). Fixes #2493.
2018-10-30 Fix broken uploadProgressCallback closureEelco Dolstra1-4/+4
Since the callback is global we can't refer to 'path' in it. This could cause a segfault or printing of arbitrary data.
2018-10-29 copyStorePath: Fix hash errors when copying from older storeFalco Peijnenburg1-3/+7
This commit partially reverts 48662d151bdf4a38670897beacea9d1bd750376a. When copying from an older store (in my case a store running Nix 1.11.7), nix would throw errors about there being no hash. This is fixed by recalculating the hash.
2018-10-27 Restore old (dis)allowedRequisites behaviour for self-referencesEelco Dolstra1-29/+34
stdenv relies on this. So ignore self-references (but only in legacy non-structured attributes mode).
2018-10-27 Merge branch 'nix-doctor' of https://github.com/LnL7/nixEelco Dolstra6-0/+29
2018-10-26 remote-store.hh: ConnectionHandle is struct, minor fix warningWill Dietz1-1/+1
2018-10-23 Merge pull request #2483 from mayflower/tail-configEelco Dolstra1-3/+3
Promote verbose-build and log-lines
2018-10-23 Promote log-lines to a fully-qualified optionLinus Heckemann1-3/+3
This allows commands like nix build --log-lines 30 nixpkgs.hello in order to obtain more information in case of a failure.
2018-10-23 Per-output reference and closure size checksEelco Dolstra1-51/+168
In structured-attributes derivations, you can now specify per-output checks such as: outputChecks."out" = { # The closure of 'out' must not be larger than 256 MiB. maxClosureSize = 256 * 1024 * 1024; # It must not refer to C compiler or to the 'dev' output. disallowedRequisites = [ stdenv.cc "dev" ]; }; outputChecks."dev" = { # The 'dev' output must not be larger than 128 KiB. maxSize = 128 * 1024; }; Also fixed a bug in allowedRequisites that caused it to ignore self-references.
2018-10-16 Fix assertion failure in Store::queryPathInfo()Eelco Dolstra1-0/+2
$ nix-store -qR /nix/store/fnord nix-store: src/libstore/store-api.cc:80: std::__cxx11::string nix::storePathToHash(const Path&): Assertion `base.size() >= storePathHashLen' failed. Aborted
2018-10-16 RemoteStore: Close connection if an exception occursEelco Dolstra2-62/+116
Fixes #2075.
2018-10-16 Get rid of UDSRemoteStore::ConnectionEelco Dolstra1-5/+1
Since its superclass RemoteStore::Connection contains 'to' and 'from' fields that refer to the file descriptor maintained in the subclass, it was possible for the flush() call in Connection::~Connection() to write to a closed file descriptor (or worse, a file descriptor now referencing another file). So make sure that the file descriptor survives 'to' and 'from'.
2018-09-28 Check requiredSystemFeatures for local buildsEelco Dolstra5-15/+49
For example, this prevents a "kvm" build on machines that don't have KVM. Fixes #2012.
2018-09-28 Move structured attrs handling into a separate classEelco Dolstra5-116/+145
This is primarily because Derivation::{can,will}BuildLocally() depends on attributes like preferLocalBuild and requiredSystemFeatures, but it can't handle them properly because it doesn't have access to the structured attributes.
2018-09-28 Remove obsolete check on system featuresEelco Dolstra1-1/+0
2018-09-28 Support special attributes in structured attributes derivationsEelco Dolstra1-94/+175
E.g. __noChroot and allowedReferences now work correctly. We also now check that the attribute type is correct. For instance, instead of allowedReferences = "out"; you have to write allowedReferences = [ "out" ]; Fixes #2453.
2018-09-27 S3BinaryCacheStore: Don't create bucketsEelco Dolstra1-28/+0
This meant that making a typo in an s3:// URI would cause a bucket to be created. Also it didn't handle eventual consistency very well. Now it's up to the user to create the bucket.
2018-09-26 Ensure download thread livenessEelco Dolstra1-19/+26
* Don't wait forever for the client to remove data from the buffer. This does mean that the buffer can grow without bounds (e.g. when downloading is faster than writing to disk), but meh. * Don't hold the state lock while calling the sink. The sink could take any amount of time to process the data (in particular when it's actually a coroutine), so we don't want to block the download thread.
2018-09-26 UntabifyEelco Dolstra1-1/+1
2018-09-07 If fallback is enabled, temporarily disable substituters after a failureEelco Dolstra4-1/+48
Otherwise, we just keep asking the substituter for other .narinfo files, which can take a very long time due to retries/timeouts.
2018-09-07 Handle queryPathInfo() failure from substituters when fallback is enabledEelco Dolstra2-0/+12
Fixes #1990.
2018-09-05 fetchurl: Respect unpackEelco Dolstra1-2/+3
Fixes #2393.
2018-09-03 download: fix size reported to progress barWill Dietz1-1/+1
2018-09-02 Store: expose the protocol version used by a storeDaiderd Jordan6-0/+29
2018-08-31 Add localhost alias for ::1 to the sandboxEelco Dolstra1-1/+1
2018-08-30 fix `error: unknown serve command 9`Michael Bishop1-1/+1
2018-08-21 Improve 'coroutine has finished' error messageEelco Dolstra1-0/+2
2018-08-21 Fix another 'coroutine has finished' during decompressionEelco Dolstra1-1/+1
https://hydra.nixos.org/build/79867739
2018-08-13 ignore when listxattr fails with ENODATASymphorien Gibol1-1/+1
This happens on CIFS and means the remote filesystem has no extended attributes.
2018-08-09 S3BinaryCacheStore: Share TransferManagerEelco Dolstra1-18/+24
TransferManager allocates a lot of memory (50 MiB by default), and it might leak but I'm not sure about that. In any case it was causing OOMs in hydra-queue-runner. So allocate only one TransferManager per S3BinaryCacheStore. Hopefully fixes https://github.com/NixOS/hydra/issues/586.
2018-08-08 S3BinaryCacheStore: Don't use the transfer status callbackEelco Dolstra1-24/+13
This callback is executed on a different thread, so exceptions thrown from the callback are not caught: Aug 08 16:25:48 chef hydra-queue-runner[11967]: terminate called after throwing an instance of 'nix::Error' Aug 08 16:25:48 chef hydra-queue-runner[11967]: what(): AWS error: failed to upload 's3://nix-cache/19dbddlfb0vp68g68y19p9fswrgl0bg7.ls' Therefore, just check the transfer status after it completes. Also include the S3 error message in the exception.
2018-08-06 DohEelco Dolstra1-1/+1
2018-08-06 Fix setting Content-Encoding in S3 uploadsEelco Dolstra1-6/+4
Fixes https://github.com/NixOS/nix/issues/2333 and https://github.com/NixOS/nixpkgs/issues/44337.
2018-08-06 Fix Brotli decompression in 'nix log'Eelco Dolstra5-56/+65
This didn't work anymore since decompression was only done in the non-coroutine case. Decompressors are now sinks, just like compressors. Also fixed a bug in bzip2 API handling (we have to handle BZ_RUN_OK rather than BZ_OK), which we didn't notice because there was a missing 'throw': if (ret != BZ_OK) CompressionError("error while compressing bzip2 file");
2018-08-06 Fix reporting of HTTP body size when a result callback is usedEelco Dolstra2-1/+5