Jake Waksbaum
01db455733
Fix deadlock in nix-store when max-connections=1
...
This fixes a bug I encountered where `nix-store -qR` will deadlock when
the `--include-outputs` flag is passed and `max-connections=1`.
The deadlock occurs because `RemoteStore::queryDerivationOutputs` takes
the only connection from the connection pool and uses it to check the
daemon version. If the version is new enough, it calls
`Store::queryDerivationOutputs`, which eventually calls
`RemoteStore::queryPartialDerivationOutputMap`, where we take another
connection from the connection pool to check the version again. Because
we still haven't released the connection from the caller, this waits for
a connection to be available, causing a deadlock.
This diff solves the issue by using `getProtocol` to check the protocol
version in the caller `RemoteStore::queryDerivationOutputs`, which
immediately frees the connection back to the pool before returning the
protocol version. That way we've already freed the connection by the
time we call `RemoteStore::queryPartialDerivationOutputMap`.
2020-11-16 02:35:50 -05:00
Eelco Dolstra
e8c379555f
LocalStore: Get rid of recursive_mutex
2020-11-03 14:45:24 +01:00
Eelco Dolstra
797a52e31d
Add FIXME
2020-11-03 14:45:24 +01:00
Eelco Dolstra
7cf874c17d
Don't use readDerivation() in addValidPath()
...
readDerivation() requires a valid path.
Fixes #4210 .
2020-11-02 18:46:44 +01:00
Eelco Dolstra
ab2ef851b6
Merge pull request #4207 from hercules-ci/fix-RemoteStore-filterSource-deadlock
...
Fix RemoteStore pool deadlock in filterSource etc
2020-11-02 14:46:10 +01:00
Eelco Dolstra
db5424bf09
Don't send eval-related settings to the daemon
2020-11-02 13:57:58 +01:00
Robert Hensing
e8a45d07bc
Restore RestrictedStore.addToStoreFromDump implementation
...
It was accidentally removed in commit ca30abb3fb
2020-10-31 23:56:03 +01:00
Robert Hensing
2192cac634
Fix RemoteStore pool deadlock in filterSource etc
2020-10-30 21:47:34 +01:00
Eelco Dolstra
ff4dea63c9
Generalize extra-* settings
...
This removes the extra-substituters and extra-sandbox-paths settings
and instead makes every array setting extensible by setting
"extra-<name> = <value>" in the configuration file or passing
"--<name> <value>" on the command line.
2020-10-29 18:17:39 +01:00
stev
869c0321ff
Alter "wanted:" to "specified:" in hash mismatch output
...
This makes it even clearer which of the two hashes was specified in the
nix files. Some may think that "wanted" and "got" is obvious, but:
"got" could mean "got in nix file" and "wanted" could mean "want to see in nix file".
2020-10-29 00:33:14 +01:00
Eelco Dolstra
02a1facbdc
Merge pull request #4056 from tweag/non-ca-depending-on-ca
...
Allow non-CA derivations to depend on CA ones
2020-10-27 17:38:29 +01:00
regnat
bc081bcd81
Inline unkownHashes
...
See https://github.com/NixOS/nix/pull/4056#discussion_r493661632
2020-10-27 07:29:25 +01:00
regnat
c092fa4702
Allow non-CA derivations to depend on CA derivations
2020-10-27 07:29:23 +01:00
Christian Kampka
461cf2b856
Add NIX_CONFIG env var for applying nix.conf overrides
2020-10-21 13:41:26 +02:00
Eelco Dolstra
fda835b231
Merge pull request #4143 from obsidiansystems/typed-goal-maps
...
Properly type the derivation and substitution goal maps
2020-10-18 18:12:21 +02:00
Robert Hensing
bd9eb5c743
DerivationGoal: only retry if output closure incomplete is only problem
2020-10-18 14:26:37 +02:00
Robert Hensing
94f1e4a441
Typo
2020-10-18 14:26:37 +02:00
John Ericson
7ed46c1574
Explain that upcast_goal
is still a static cast
2020-10-17 21:50:12 +00:00
John Ericson
57d0432b39
Just use auto
in two places.
2020-10-17 21:47:52 +00:00
John Ericson
e6f8ae56d8
tab -> space
2020-10-17 21:45:31 +00:00
John Ericson
0fefc2a439
Merge remote-tracking branch 'upstream/master' into typed-goal-maps
2020-10-14 20:49:01 +00:00
Eelco Dolstra
11882d7c7c
Create /etc/passwd *after* figuring out the sandbox uid/gid
...
Fixes build failures like
# nix log /nix/store/gjaa0psfcmqvw7ivggsncx9w364p3s8s-sshd.conf-validated.drv
No user exists for uid 30012
2020-10-14 12:20:58 +02:00
John Ericson
55592b253f
Add some more docs
2020-10-13 18:04:24 +00:00
John Ericson
13804f126e
Merge remote-tracking branch 'upstream/master' into typed-goal-maps
2020-10-13 18:02:32 +00:00
Eelco Dolstra
2653801939
Merge branch 'split_build_cc' of https://github.com/obsidiansystems/nix
2020-10-13 15:36:55 +02:00
John Ericson
1b8ebe92dc
Merge remote-tracking branch 'obsidian/split_build_cc' into typed-goal-maps
2020-10-12 20:47:22 +00:00
John Ericson
a73959e6be
Merge remote-tracking branch 'upstream/master' into split_build_cc
2020-10-12 17:20:46 +00:00
John Ericson
d334fd4882
Merge branches 'split_build_hh-0', 'split_build_hh-1', 'split_build_hh-2', 'split_build_hh-3' and 'split_build_hh-4' into split_build_cc
2020-10-12 17:20:12 +00:00
John Ericson
542972f029
Trim worker.hh
2020-10-12 17:16:48 +00:00
John Ericson
0e2306204a
Rename to hand-hold git (worker.hh)
2020-10-12 17:16:48 +00:00
John Ericson
3ffa3546bd
Trim substitution-goal.hh
2020-10-12 17:16:25 +00:00
John Ericson
e77a2344d5
Rename to hand-hold git (substitution-goal.hh)
2020-10-12 17:16:25 +00:00
John Ericson
d585b4c54f
Trim hook-instance.hh
2020-10-12 17:16:13 +00:00
John Ericson
10b749a156
Rename to hand-hold git (hook-instance.hh)
2020-10-12 17:16:13 +00:00
John Ericson
8067d32f2a
Trim goal.hh
2020-10-12 17:16:00 +00:00
John Ericson
0d0e345cdc
Rename to hand-hold git (goal.hh)
2020-10-12 17:16:00 +00:00
John Ericson
2ce726947a
Trim derivation-goal.hh
2020-10-12 17:15:32 +00:00
John Ericson
4eb8c69853
Rename to hand-hold git (derivation-goal.hh)
2020-10-12 17:15:32 +00:00
John Ericson
f7099965bf
Change .cc files to use split build headers
2020-10-12 17:08:52 +00:00
John Ericson
5a97621d6d
Prepare for build/*.hh headers
2020-10-12 17:07:51 +00:00
volth
eee18f88dd
Handle amount of disk space saved by hard linking being negative
...
Fixes bogus messages like "currently hard linking saves 17592186044416.00 MiB".
2020-10-12 16:06:38 +00:00
John Ericson
15fdb7cc6b
Split out uds-remote-store.{cc.hh}
2020-10-11 17:37:05 +00:00
John Ericson
38e3897162
Copy {uds-,}remote-store.{cc,hh}
...
This prepares for the splitting that happens in the next commit.
2020-10-11 17:18:26 +00:00
John Ericson
5c74a6147b
Properly type the derivation and substitution goal maps
...
As a bonus, Worker::removeGoal is less inefficient.
2020-10-11 17:07:14 +00:00
John Ericson
8cc510fb79
Merge branches 'build-1', 'build-2', 'build-3', 'build-4', 'build-5', 'build-6', 'build-7' and 'build-8' into split_build_cc
2020-10-11 16:44:34 +00:00
John Ericson
bcb67e1ed8
Trim lock.cc
2020-10-11 16:44:19 +00:00
John Ericson
e0be04129b
Rename to hand-hold git (lock.cc)
2020-10-11 16:44:14 +00:00
John Ericson
dbc588651c
Trim lock.hh
2020-10-11 16:44:07 +00:00
John Ericson
d0004bfcab
Rename to hand-hold git (lock.hh)
2020-10-11 16:43:59 +00:00
John Ericson
eed53ed87a
Trim build/worker.cc
2020-10-11 16:43:51 +00:00