Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
hercules-ci/issue-3294-fix-interruptCallback-deadlock
Fix deadlocked nix-daemon zombies on darwin #3294
|
|
|
|
path-info: use full store paths when we have them
|
|
Fixes #5645
|
|
This also makes sure that we get the Docker images from the same Hydra
eval, rather than the latest build from job/nix/.../dockerImage, which
may not be the same.
|
|
|
|
add release notes for welcomeText
|
|
|
|
|
|
|
|
add descriptive output when creating templates
|
|
|
|
Create daemon-socket folder during install
|
|
|
|
|
|
|
|
Fix formatting for options with "machine-specific" defaults
|
|
|
|
this includes a `welcomeText` attribute which can be set in the
template, as well as outputing which files were created.
|
|
InstallableFlake: Default attr paths cleanup
|
|
This removes some duplicated logic, and fixes "nix bundle" parsing its
installable twice.
|
|
Fix using sandbox without user namespaces
|
|
|
|
parseInstallables(): Don't try the flake attr path prefixes when no fragment is specified
|
|
profile: add verbosity
|
|
warn if there are no matches and give notice of removing packages as
they are found
|
|
is specified
Fixes #5880.
|
|
|
|
|
|
|
|
Revert "mk: prefert inplace library paths to system ones (take 2)"
|
|
|
|
mk: prefert inplace library paths to system ones (take 2)
|
|
It's a second attempt to merge the change. Previous attempt
was reverted in b976b34a5b05ba303904cc7b8e0a2579bdb52807.
Since then underlying failure exposed by original change was
fixed by https://github.com/NixOS/nix/pull/5354.
Below goes description of original change:
The link failure happens on a system with stable nix-2.3.15
installed in /usr/lib64 (it's libutil.so API differs from master):
```
LANG=C make V=1
g++ -o /home/slyfox/dev/git/nix/src/libstore/libnixstore.so \
-shared -L/usr/lib64 -Wl,--no-copy-dt-needed-entries \
src/libstore/binary-cache-store.o ... src/libstore/uds-remote-store.o \
-lsqlite3 -lcurl -lsodium -pthread -ldl -lseccomp -Wl,-z,defs -Wl,-soname=libnixstore.so
-Wl,-rpath,/home/slyfox/dev/git/nix/src/libutil -Lsrc/libutil -lnixutil
ld: src/libstore/binary-cache-store.o: in function `nix::BinaryCacheStore::BinaryCacheStore(
std::map<std::__cxx11::basic_string<char, std::char_traits<char>, ...
nix/src/libstore/binary-cache-store.cc:30: undefined reference to `nix::readFile(
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' ...
...
```
This happens due to `-L/usr/lib64 -Lsrc/libutil` search path ordering.
The change turns it into `-Lsrc/libutil -L/usr/lib64`.
Closes: https://github.com/NixOS/nix/issues/3087
|
|
repl/load-flake: throw error if path isn't specified
|
|
Make sure no exceptions leave ignoreException()
|
|
I noticed that occasional Ctrl-C leaves *.lock files around.
`nix-daemon`'s journal logs contained crashes like:
nix-daemon[30416]: terminate called after throwing an instance of 'nix::SysError'
nix-daemon[30416]: what(): error: writing to file: Broken pipe
And core dump backtraces pointed at `teriminate()` call from
destructors:
...
_Unwind_Resume ()
nix::ignoreException() ()
nix::LocalDerivationGoal::~LocalDerivationGoal()
...
void ignoreException()
{
try {
throw;
} catch (std::exception & e) {
printError("error (ignored): %1%", e.what());
}
}
The crashes happen when client side closes early and printError() throws
an IO error.
The change wraps `ignoreException()` into blanket `try { ... } catch (...) {}`.
Closes: https://github.com/NixOS/nix/issues/6046
|
|
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
|
|
Fixes #5985.
|
|
|
|
This changes the representation of the interrupt callback list to
be safe to use during interrupt handling.
Holding a lock while executing arbitrary functions is something to
avoid in general, because of the risk of deadlock.
Such a deadlock occurs in https://github.com/NixOS/nix/issues/3294
where ~CurlDownloader tries to deregister its interrupt callback.
This happens during what seems to be a triggerInterrupt() by the
daemon connection's MonitorFdHup thread. This bit I can not confirm
based on the stack trace though; it's based on reading the code,
so no absolute certainty, but a smoking gun nonetheless.
|
|
Allow missing flake.nix for --override-input target
|
|
nix-shell: set BASH variable to correct shell
|
|
fix nix repl not overriding existing bindings in :a
|
|
completions: pipe stderr to /dev/null
|
|
|
|
This fixes weird issues where e.g.
nix build -L .#<tab>
deletes the current line from the prompt.
|