Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2014-08-21 | Use unshare() instead of clone() | Eelco Dolstra | 1 | -55/+35 | |
It turns out that using clone() to start a child process is unsafe in a multithreaded program. It can cause the initialisation of a build child process to hang in setgroups(), as seen several times in the build farm: The reason is that Glibc thinks that the other threads of the parent exist in the child, so in setxid_mark_thread() it tries to get a futex that has been acquired by another thread just before the clone(). With fork(), Glibc runs pthread_atfork() handlers that take care of this (in particular, __reclaim_stacks()). But clone() doesn't do that. Fortunately, we can use fork()+unshare() instead of clone() to set up private namespaces. See also https://www.mail-archive.com/lxc-devel@lists.linuxcontainers.org/msg03434.html. | |||||
2014-08-21 | Fix a segfault in ‘nix-env -qa’ | Eelco Dolstra | 1 | -1/+1 | |
This was triggered by 47e185847e729d49e6aa376e8299fd66ef834a0a, which turned globals.state into a pointer. | |||||
2014-08-20 | Flush std::cout before closing stdout | Eelco Dolstra | 1 | -0/+1 | |
2014-08-20 | Use pager for more commands | Eelco Dolstra | 2 | -1/+8 | |
2014-08-20 | Provide reasonable default flags for $LESS | Eelco Dolstra | 1 | -1/+2 | |
Borrowed from systemd. | |||||
2014-08-20 | Use proper quotes everywhere | Eelco Dolstra | 35 | -439/+439 | |
2014-08-20 | Add some color | Eelco Dolstra | 6 | -52/+56 | |
2014-08-20 | nix-store -l: Automatically pipe output into $PAGER | Eelco Dolstra | 4 | -2/+56 | |
2014-08-20 | Filter Nix-specific ANSI escape sequences from stderr | Eelco Dolstra | 1 | -1/+37 | |
The Nixpkgs stdenv prints some custom escape sequences to denote nesting and stuff like that. Most terminals (e.g. xterm, konsole) ignore them, but some do not (e.g. xfce4-terminal). So for the benefit of the latter, filter them out. | |||||
2014-08-19 | Make hook shutdown more reliable | Eelco Dolstra | 1 | -1/+1 | |
2014-08-18 | Fix --attr parsing | Eelco Dolstra | 1 | -1/+3 | |
2014-08-18 | Doh | Eelco Dolstra | 1 | -4/+1 | |
2014-08-17 | Reduce verbosity | Eelco Dolstra | 1 | -1/+2 | |
2014-08-17 | Propagate remote timeouts properly | Eelco Dolstra | 1 | -21/+33 | |
2014-08-17 | Fix download-via-ssh | Eelco Dolstra | 1 | -2/+4 | |
http://hydra.nixos.org/build/13286020 | |||||
2014-08-13 | nix-log2xml: Handle newlines | Eelco Dolstra | 1 | -0/+1 | |
2014-08-13 | Remove log2html.xsl and friends | Eelco Dolstra | 4 | -160/+0 | |
It's part of Hydra now. | |||||
2014-08-13 | nix-log2xml: Handle UTF-8 characters | Eelco Dolstra | 1 | -1/+1 | |
C++ chars can be negative... | |||||
2014-08-13 | Use regular file GC roots if possible | Eelco Dolstra | 1 | -1/+4 | |
This makes hydra-eval-jobs create roots as regular files. See 1c208f2b7ef8ffb5e6d435d703dad83223a67bd6. | |||||
2014-08-13 | Handle compound single dash options properly | Eelco Dolstra | 1 | -15/+14 | |
So now nix-instantiate --eval -E '{x}: x' --argstr x -xyzzy correctly prints "-xyzzy", rather than giving an error. Issue NixOS/hydra#176. | |||||
2014-08-13 | Refactor option handling | Eelco Dolstra | 10 | -537/+509 | |
2014-08-13 | Fix warning about non-existant -I directories | Eelco Dolstra | 1 | -1/+1 | |
2014-08-13 | Remove pointless NIX_LOG_TYPE environment variable | Eelco Dolstra | 1 | -4/+0 | |
2014-08-05 | Remove unnecessary call to addTempRoot() | Eelco Dolstra | 1 | -1/+0 | |
2014-08-05 | Doh | Eelco Dolstra | 2 | -11/+2 | |
2014-08-04 | Move some options out of globals | Eelco Dolstra | 4 | -6/+15 | |
2014-08-04 | Refactor | Eelco Dolstra | 3 | -43/+43 | |
2014-08-04 | Add option ‘build-extra-chroot-dirs’ | Eelco Dolstra | 4 | -13/+9 | |
This is useful for extending (rather than overriding) the default set of chroot paths. | |||||
2014-08-04 | Get rid of "killing <pid>" message for unused build hooks | Eelco Dolstra | 3 | -4/+5 | |
2014-08-04 | Make chroot builds easier to set up | Eelco Dolstra | 1 | -0/+3 | |
By default, we now include /bin/sh as a bind-mount of bash. | |||||
2014-08-01 | Remove ugly hack for detecting build environment setup errors | Eelco Dolstra | 1 | -13/+10 | |
2014-08-01 | Call commonChildInit() before doing chroot init | Eelco Dolstra | 2 | -12/+16 | |
This ensures that daemon clients see error messages from the chroot setup. | |||||
2014-08-01 | Eliminate redundant copy | Eelco Dolstra | 2 | -1/+3 | |
2014-08-01 | findRoots(): Prevent a call to lstat() | Eelco Dolstra | 1 | -9/+14 | |
This means that getting the roots from /nix/var/nix/.../hydra-roots doesn't need any I/O other than reading the directory. | |||||
2014-08-01 | Make readDirectory() return inode / file type | Eelco Dolstra | 7 | -46/+48 | |
2014-08-01 | Allow regular files as GC roots | Eelco Dolstra | 1 | -0/+6 | |
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. | |||||
2014-07-31 | Restore default SIGPIPE handler before invoking ‘man’ | Eelco Dolstra | 4 | -15/+17 | |
Fixes NixOS/nixpkgs#3410. | |||||
2014-07-30 | Rename nixPath to __nixPath | Eelco Dolstra | 2 | -3/+3 | |
The name ‘nixPath’ breaks existing code. | |||||
2014-07-25 | nix-daemon: Pass on the user's $SSH_AUTH_SOCK to the SSH substituter | Eelco Dolstra | 4 | -0/+17 | |
2014-07-25 | Change the default for use-ssh-substituter to ‘true’ | Eelco Dolstra | 1 | -2/+2 | |
Now you only have to pass ‘--option ssh-substituter-hosts nix-ssh@bla’ to enable SSH substitution. | |||||
2014-07-24 | nix-copy-closure: Drop --bzip2, --xz, --show-progress | Eelco Dolstra | 1 | -32/+1 | |
These are too difficult to implement via nix-store --serve. ‘--show-progress’ could be re-implemented fairly easily via a sink/source wrapper class. | |||||
2014-07-24 | Implement nix-copy-closure --from via nix-store --serve | Eelco Dolstra | 2 | -1/+13 | |
2014-07-24 | build-remote.pl: Be less verbose on failing builds | Eelco Dolstra | 1 | -4/+4 | |
2014-07-24 | nix-store --serve: Only monitor stdin during builds | Eelco Dolstra | 1 | -2/+2 | |
Other operations cannot hang indefinitely (except when we're reading from stdin, in which case we'll notice a client disconnect). But monitoring works badly during compressed imports, since there the client can close the connection before we've sent an ack. http://hydra.nixos.org/build/12711638 | |||||
2014-07-24 | Use pthread_cancel instead of a signal | Eelco Dolstra | 1 | -5/+2 | |
Signal handlers are process-wide, so sending SIGINT to the monitor thread will cause the normal SIGINT handler to run. This sets the isInterrupted flag, which is not what we want. So use pthread_cancel instead. | |||||
2014-07-24 | Fix bogus pass by reference | Eelco Dolstra | 1 | -6/+1 | |
http://hydra.nixos.org/build/12711659 | |||||
2014-07-24 | More debugging | Eelco Dolstra | 1 | -0/+1 | |
2014-07-24 | Add some assertions | Eelco Dolstra | 1 | -0/+6 | |
2014-07-24 | Remove some dead code | Eelco Dolstra | 2 | -10/+0 | |
2014-07-23 | Remove some obsolete files | Eelco Dolstra | 1 | -141/+0 | |