Eelco Dolstra
b499d2efbf
Silence some warnings on GCC 4.9
2015-06-03 18:14:48 +02:00
Eelco Dolstra
159b7103a7
Shut up a Valgrind warning
2015-06-03 18:08:58 +02:00
Eelco Dolstra
7930b2cb76
Fix some memory leaks
2015-06-03 18:08:39 +02:00
Eelco Dolstra
5c84e4950d
Ensure we're writing to stderr in the builder
...
http://hydra.nixos.org/build/17862041
2015-06-03 18:05:33 +02:00
Eelco Dolstra
ccade8c120
Get rid of unnecessary "interrupted by the user" message with -vvv
2015-06-03 18:04:04 +02:00
Eelco Dolstra
8d9a0be278
Remove tabs
2015-06-03 18:03:14 +02:00
Eelco Dolstra
1f8456ff13
Use PR_SET_PDEATHSIG to ensure child cleanup
2015-06-03 17:59:53 +02:00
Ludovic Courtès
909f1260e2
Rename 'initChild' to 'runChild'.
...
This is similar to commit b5ed5b6 in upstream Nix.
2015-06-03 17:54:33 +02:00
Eelco Dolstra
3bfa70b796
Don't wait for PID -1
...
The pid field can be -1 if forking the substituter process failed.
2015-05-11 17:44:08 +02:00
Eelco Dolstra
5241aec531
Build derivations in a more predictable order
...
Derivations are now built in order of derivation name, so a package
named "aardvark" is built before "baboon".
Fixes #399 .
2015-05-11 17:42:53 +02:00
Eelco Dolstra
9f355738e1
Don't create unnecessary substitution goals for derivations
2015-05-11 17:42:43 +02:00
Eelco Dolstra
554eaf5e8c
Disable vacuuming the DB after garbage collection
...
Especially in WAL mode on a highly loaded machine, this is not a good
idea because it results in a WAL file of approximately the same size
ad the database, which apparently cannot be deleted while anybody is
accessing it.
2015-05-11 17:42:18 +02:00
Eelco Dolstra
4eb62b5230
nix-daemon: Call exit(), not _exit()
...
This was preventing destructors from running. In particular, it was
preventing the deletion of the temproot file for each worker
process. It may also have been responsible for the excessive WAL
growth on Hydra (due to the SQLite database not being closed
properly).
Apparently broken by accident in
8e9140cfde
.
2015-05-11 17:41:56 +02:00
Eelco Dolstra
f160a30d56
Clean up temp roots in a more C++ way
2015-05-11 17:40:44 +02:00
Eelco Dolstra
a64744477d
Fix message
2015-05-11 17:40:28 +02:00
Eelco Dolstra
b73de6e49b
Don't use ADDR_LIMIT_3GB
...
This gives 32-bit builds on x86_64-linux more memory.
2015-05-11 17:39:31 +02:00
Eelco Dolstra
e0825bd36b
Make ~DerivationGoal more reliable
2015-05-11 17:39:20 +02:00
Eelco Dolstra
86b9e6d457
nix-store --gc: Don't warn about missing manifests directory
2015-05-11 17:39:01 +02:00
Eelco Dolstra
1129a982c4
Improve error message if the daemon worker fails to start
2015-05-11 17:38:34 +02:00
Shea Levy
bed17f40fc
Fix build on gcc < 4.7
2015-05-11 17:37:20 +02:00
Eelco Dolstra
ee8601cac4
Improved error message when encountering unsupported file types
...
Fixes #269 .
2015-05-11 17:36:33 +02:00
Eelco Dolstra
c2b65dd197
Remove some duplicate code
2015-05-11 17:36:05 +02:00
Eelco Dolstra
c957422835
createDirs(): Handle ‘path’ being a symlink
...
In particular, this fixes "nix-build -o /tmp/result" on Mac OS X
(where /tmp is a symlink).
2015-05-11 17:35:25 +02:00
Eelco Dolstra
6092a48603
nix-daemon: Close unnecessary fd
2015-05-11 17:34:24 +02:00
Eelco Dolstra
e74390a16f
Remove bogus comment
2015-05-11 17:33:22 +02:00
Eelco Dolstra
e63c8aaa05
On Linux, disable address space randomization
2015-05-11 17:33:04 +02:00
Eelco Dolstra
55939b1a4b
Settings: Add bool get()
2015-05-11 17:32:30 +02:00
Ludovic Courtès
6621195e48
Add an 'optimiseStore' remote procedure call.
2015-05-11 17:31:02 +02:00
Eelco Dolstra
3bb89c3a31
Add disallowedReferences / disallowedRequisites
...
For the "stdenv accidentally referring to bootstrap-tools", it seems
easier to specify the path that we don't want to depend on, e.g.
disallowedRequisites = [ bootstrapTools ];
2015-05-11 17:30:29 +02:00
Gergely Risko
abd9d61e62
Introduce allowedRequisites feature
2015-05-11 17:29:11 +02:00
Joel Taylor
8c766e48d5
fix disappearing bash arguments
2015-05-11 17:26:37 +02:00
Eelco Dolstra
d4e7c195fa
Make hook shutdown more reliable
2015-05-11 17:25:20 +02:00
Eelco Dolstra
ea837e470f
Doh
2015-05-11 17:25:16 +02:00
Eelco Dolstra
790271559c
Reduce verbosity
2015-05-11 17:25:13 +02:00
Eelco Dolstra
3f6d4f63ec
Propagate remote timeouts properly
2015-05-11 17:25:05 +02:00
Eelco Dolstra
aa98ba5067
Use regular file GC roots if possible
...
This makes hydra-eval-jobs create roots as regular files. See
1c208f2b7ef8ffb5e6d435d703dad83223a67bd6.
2015-05-11 17:23:33 +02:00
Eelco Dolstra
5fe5ff7780
Remove unnecessary call to addTempRoot()
2015-05-11 17:22:39 +02:00
Eelco Dolstra
1820845c44
Doh
2015-05-11 17:22:33 +02:00
Eelco Dolstra
e9070bf422
Move some options out of globals
2015-05-11 17:22:24 +02:00
Eelco Dolstra
3190951563
Refactor
2015-05-11 17:20:17 +02:00
Eelco Dolstra
f530ee6f35
Add option ‘build-extra-chroot-dirs’
...
This is useful for extending (rather than overriding) the default set
of chroot paths.
2015-05-11 17:20:03 +02:00
Eelco Dolstra
75f746f018
Get rid of "killing <pid>" message for unused build hooks
2015-05-11 17:16:37 +02:00
Eelco Dolstra
42c6246f67
Remove ugly hack for detecting build environment setup errors
2015-05-11 17:16:22 +02:00
Eelco Dolstra
b732ffd28d
Call commonChildInit() before doing chroot init
...
This ensures that daemon clients see error messages from the chroot
setup.
2015-05-11 17:15:44 +02:00
Eelco Dolstra
c51374c128
Eliminate redundant copy
2015-05-11 17:15:23 +02:00
Eelco Dolstra
666c9b7108
findRoots(): Prevent a call to lstat()
...
This means that getting the roots from /nix/var/nix/.../hydra-roots
doesn't need any I/O other than reading the directory.
2015-05-11 17:15:12 +02:00
Eelco Dolstra
82d463d9ca
Make readDirectory() return inode / file type
2015-05-11 17:14:51 +02:00
Eelco Dolstra
a98fa2d9e2
Allow regular files as GC roots
...
If a root is a regular file, then its name must denote a store
path. For instance, the existence of the file
/nix/var/nix/gcroots/per-user/eelco/hydra-roots/wzc3cy1wwwd6d0dgxpa77ijr1yp50s6v-libxml2-2.7.7
would cause
/nix/store/wzc3cy1wwwd6d0dgxpa77ijr1yp50s6v-libxml2-2.7.7
to be a root.
This is useful because it involves less I/O (no need for a readlink()
call) and takes up less disk space (the symlink target typically takes
up a full disk block, while directory entries are packed more
efficiently). This is particularly important for hydra.nixos.org,
which has hundreds of thousands of roots, and where reading the roots
can take 25 minutes.
2015-05-11 17:13:24 +02:00
Eelco Dolstra
4ab4b0c109
Remove some dead code
2015-05-11 17:11:38 +02:00
Eelco Dolstra
1cffdf5847
nix-daemon: Less verbosity
2015-05-11 17:11:27 +02:00