nix-daemon crash on upgrade from 2.95.1 to 2.95.2 via nix upgrade-nix #1207

Open
opened 2026-05-05 17:32:12 +00:00 by gabeio · 4 comments

Describe the bug

A clear and concise description of what the bug is.

While running the nix-daemon from lix version 2.95.1 the nix-daemon crashes in the middle of the upgrade.

I will note that I am aware that the nix-daemon needs to be restarted after the update but I never got that far.

If you have a problem with a specific package or NixOS,
you probably want to file an issue at https://github.com/NixOS/nixpkgs/issues.

Steps To Reproduce

  1. 2.95.1 installed
  2. try to upgrade (sudo nix upgrade-nix or curl -sSf -L "https://git.lix.systems/lix-project/lix/raw/tag/2.95.1/misc/upgrade-lix.sh" | sudo --preserve-env=PATH bash -s -- 2.95.2)
  3. nix-daemon crashes

the output of the nix upgrade-nix command (in this case using profile default although without is is pretty much exactly the same):

sudo nix upgrade-nix -p /nix/var/nix/profiles/default
warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root')
downloading 'https://releases.lix.systems/manifest.nix'warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root')
warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root')
uninstalling 'lix-2.95.1'
performing daemon worker op: 19
warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root')
installing 'lix-2.95.2'
error: cannot open connection to remote store 'daemon': error: stream ended unexpectedly
error: program '/nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix-env' failed with exit code 1

Expected behavior

A clear and concise description of what you expected to happen.

Being able to upgrade? /s

nix --version output

nix --version
nix (Lix, like Nix) 2.95.1
System type: aarch64-darwin
Additional system types: x86_64-darwin
Features: gc, signed-caches
System configuration file: /etc/nix/nix.conf
User configuration files: /Users/gabeio/.config/nix/nix.conf:/etc/xdg/nix/nix.conf
Store directory: /nix/store
State directory: /nix/var/nix
Data directory: /nix/store/ylbrql19ngr2wypjiviyx21qvbwpd79z-lix-2.95.1/share

Additional context

Add any other context about the problem here.

I was able to recover my nix profile by using an older generation and trying again which allowed me to get a traceback from nix-daemon (the traceback below is from the nix version above)

sudo /nix/var/nix/profiles/default/bin/nix-daemon --debug
Password:
warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root')
accepted connection from pid 14429
running command from PATH with explicit argv0: '/nix/var/nix/profiles/default/bin/nix-daemon' 'nix-daemon' '--for' '14429' '--log-level' '6'
warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root')
remote pid 14429 is unknown user (trusted)
received daemon op 19
accepted connection from pid 14438
running command from PATH with explicit argv0: '/nix/var/nix/profiles/default/bin/nix-daemon' 'nix-daemon' '--for' '14438' '--log-level' '6'
warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root')
remote pid 14438 is unknown user (trusted)
received daemon op 19
accepted connection from pid 14442
running command from PATH with explicit argv0: '/nix/var/nix/profiles/default/bin/nix-daemon' 'nix-daemon' '--for' '14442' '--log-level' '6'
killing process 14444
error: killing process 14444: No such process
killing process 14444
error: killing process 14444: No such process
Lix crashed. This is a bug. We would appreciate if you report it along with what caused it at https://git.lix.systems/lix-project/lix/issues with the following information included:

Exception: nix::SysError: error: cannot get exit status of PID 14444: No child processes
Stack trace:
 0# nix::getStackTrace() in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib
 1# nix::logException(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::exception const&) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib
 2# nix::(anonymous namespace)::onTerminate() in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib
 3# std::__terminate(void (*)()) in /usr/lib/libc++abi.dylib
 4# std::terminate() in /usr/lib/libc++abi.dylib
 5# kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>::~Own() in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib
 6# kj::_::Coroutine<boost::outcome_v2::basic_result<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::exception_ptr, void>>>::Awaiter<boost::outcome_v2::basic_result<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, void>>> kj::_::Coroutine<boost::outcome_v2::basic_result<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::exception_ptr, void>>>::await_transform<boost::outcome_v2::basic_result<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, void>>>(kj::Promise<boost::outcome_v2::basic_result<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, void>>>&&) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib
 7# nix::daemonLoopForSocket(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Settings::DaemonSocketPath const&, nix::AutoCloseFD&, std::__1::optional<nix::TrustedFlag>) (.resume) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix
 8# non-virtual thunk to kj::_::CoroutineBase::fire() in /nix/store/7fdxyll3a301w9wb8sw3mivd64kjhv16-capnproto-1.2.0/lib/libkj-async.1.2.0.dylib
 9# kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation)::$_2::operator()() const in /nix/store/7fdxyll3a301w9wb8sw3mivd64kjhv16-capnproto-1.2.0/lib/libkj-async.1.2.0.dylib
10# kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation) in /nix/store/7fdxyll3a301w9wb8sw3mivd64kjhv16-capnproto-1.2.0/lib/libkj-async.1.2.0.dylib
11# kj::Promise<boost::outcome_v2::basic_result<void, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<void, std::exception_ptr, void>>>::wait(kj::WaitScope&, kj::SourceLocation) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix
12# auto nix::AsyncIoRoot::blockOn<boost::outcome_v2::basic_result<void, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<void, std::exception_ptr, void>>>(kj::Promise<boost::outcome_v2::basic_result<void, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<void, std::exception_ptr, void>>>&&, std::__1::source_location) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix
13# nix::runDaemon(nix::AsyncIoRoot&, bool, std::__1::optional<nix::TrustedFlag>) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix
14# nix::main_nix_daemon(nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::span<char*, 18446744073709551615ul>) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix
15# decltype(std::declval<int (*&)(nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::span<char*, 18446744073709551615ul>)>()(std::declval<nix::AsyncIoRoot&>(), std::declval<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>(), std::declval<std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>>(), std::declval<std::__1::span<char*, 18446744073709551615ul>>())) std::__1::__invoke[abi:se190102]<int (*&)(nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::span<char*, 18446744073709551615ul>), nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::span<char*, 18446744073709551615ul>>(int (*&)(nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::span<char*, 18446744073709551615ul>), nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&&, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>&&, std::__1::span<char*, 18446744073709551615ul>&&) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix
16# nix::mainWrapped(nix::AsyncIoRoot&, int, char**) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix
17# std::__1::__function::__func<main::$_0, std::__1::allocator<main::$_0>, int ()>::operator()() in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix
18# nix::handleExceptions(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::function<int ()>) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib
19# main in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix

fish: Job 1, 'sudo /nix/var/nix/profiles/defa…' terminated by signal SIGABRT (Abort)

my workaround:

sudo ln -Ffs /nix/store/vk77mkl9vqnpfwlk875j6b80df37yw01-user-environment /nix/var/nix/profiles/default effectively rolling back the default profile to an older version which was functional and then was able to run the upgrade all the way up.

## Describe the bug A clear and concise description of what the bug is. While running the nix-daemon from lix version 2.95.1 the nix-daemon crashes in the middle of the upgrade. I will note that I am aware that the nix-daemon needs to be restarted _after_ the update but I never got that far. If you have a problem with a specific package or NixOS, you probably want to file an issue at https://github.com/NixOS/nixpkgs/issues. ## Steps To Reproduce 1. 2.95.1 installed 2. try to upgrade (`sudo nix upgrade-nix` or `curl -sSf -L "https://git.lix.systems/lix-project/lix/raw/tag/2.95.1/misc/upgrade-lix.sh" | sudo --preserve-env=PATH bash -s -- 2.95.2`) 3. nix-daemon crashes the output of the nix upgrade-nix command (in this case using `profile` default although without is is pretty much exactly the same): ``` sudo nix upgrade-nix -p /nix/var/nix/profiles/default warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root') downloading 'https://releases.lix.systems/manifest.nix'warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root') warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root') uninstalling 'lix-2.95.1' performing daemon worker op: 19 warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root') installing 'lix-2.95.2' error: cannot open connection to remote store 'daemon': error: stream ended unexpectedly error: program '/nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix-env' failed with exit code 1 ``` ## Expected behavior A clear and concise description of what you expected to happen. Being able to upgrade? /s ## `nix --version` output ``` nix --version nix (Lix, like Nix) 2.95.1 System type: aarch64-darwin Additional system types: x86_64-darwin Features: gc, signed-caches System configuration file: /etc/nix/nix.conf User configuration files: /Users/gabeio/.config/nix/nix.conf:/etc/xdg/nix/nix.conf Store directory: /nix/store State directory: /nix/var/nix Data directory: /nix/store/ylbrql19ngr2wypjiviyx21qvbwpd79z-lix-2.95.1/share ``` ## Additional context Add any other context about the problem here. I was able to recover my nix profile by using an older generation and trying again which allowed me to get a traceback from `nix-daemon` (the traceback below is from the nix version above) ``` sudo /nix/var/nix/profiles/default/bin/nix-daemon --debug Password: warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root') accepted connection from pid 14429 running command from PATH with explicit argv0: '/nix/var/nix/profiles/default/bin/nix-daemon' 'nix-daemon' '--for' '14429' '--log-level' '6' warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root') remote pid 14429 is unknown user (trusted) received daemon op 19 accepted connection from pid 14438 running command from PATH with explicit argv0: '/nix/var/nix/profiles/default/bin/nix-daemon' 'nix-daemon' '--for' '14438' '--log-level' '6' warning: $HOME ('/Users/gabeio') is not owned by you, falling back to the one defined in the 'passwd' file ('/var/root') remote pid 14438 is unknown user (trusted) received daemon op 19 accepted connection from pid 14442 running command from PATH with explicit argv0: '/nix/var/nix/profiles/default/bin/nix-daemon' 'nix-daemon' '--for' '14442' '--log-level' '6' killing process 14444 error: killing process 14444: No such process killing process 14444 error: killing process 14444: No such process Lix crashed. This is a bug. We would appreciate if you report it along with what caused it at https://git.lix.systems/lix-project/lix/issues with the following information included: Exception: nix::SysError: error: cannot get exit status of PID 14444: No child processes Stack trace: 0# nix::getStackTrace() in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib 1# nix::logException(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::exception const&) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib 2# nix::(anonymous namespace)::onTerminate() in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib 3# std::__terminate(void (*)()) in /usr/lib/libc++abi.dylib 4# std::terminate() in /usr/lib/libc++abi.dylib 5# kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>::~Own() in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib 6# kj::_::Coroutine<boost::outcome_v2::basic_result<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::exception_ptr, void>>>::Awaiter<boost::outcome_v2::basic_result<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, void>>> kj::_::Coroutine<boost::outcome_v2::basic_result<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<std::__1::pair<int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::exception_ptr, void>>>::await_transform<boost::outcome_v2::basic_result<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, void>>>(kj::Promise<boost::outcome_v2::basic_result<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::exception_ptr, void>>>&&) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib 7# nix::daemonLoopForSocket(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Settings::DaemonSocketPath const&, nix::AutoCloseFD&, std::__1::optional<nix::TrustedFlag>) (.resume) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix 8# non-virtual thunk to kj::_::CoroutineBase::fire() in /nix/store/7fdxyll3a301w9wb8sw3mivd64kjhv16-capnproto-1.2.0/lib/libkj-async.1.2.0.dylib 9# kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation)::$_2::operator()() const in /nix/store/7fdxyll3a301w9wb8sw3mivd64kjhv16-capnproto-1.2.0/lib/libkj-async.1.2.0.dylib 10# kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation) in /nix/store/7fdxyll3a301w9wb8sw3mivd64kjhv16-capnproto-1.2.0/lib/libkj-async.1.2.0.dylib 11# kj::Promise<boost::outcome_v2::basic_result<void, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<void, std::exception_ptr, void>>>::wait(kj::WaitScope&, kj::SourceLocation) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix 12# auto nix::AsyncIoRoot::blockOn<boost::outcome_v2::basic_result<void, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<void, std::exception_ptr, void>>>(kj::Promise<boost::outcome_v2::basic_result<void, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<void, std::exception_ptr, void>>>&&, std::__1::source_location) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix 13# nix::runDaemon(nix::AsyncIoRoot&, bool, std::__1::optional<nix::TrustedFlag>) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix 14# nix::main_nix_daemon(nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::span<char*, 18446744073709551615ul>) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix 15# decltype(std::declval<int (*&)(nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::span<char*, 18446744073709551615ul>)>()(std::declval<nix::AsyncIoRoot&>(), std::declval<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>(), std::declval<std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>>(), std::declval<std::__1::span<char*, 18446744073709551615ul>>())) std::__1::__invoke[abi:se190102]<int (*&)(nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::span<char*, 18446744073709551615ul>), nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::span<char*, 18446744073709551615ul>>(int (*&)(nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::span<char*, 18446744073709551615ul>), nix::AsyncIoRoot&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>&&, std::__1::list<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>&&, std::__1::span<char*, 18446744073709551615ul>&&) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix 16# nix::mainWrapped(nix::AsyncIoRoot&, int, char**) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix 17# std::__1::__function::__func<main::$_0, std::__1::allocator<main::$_0>, int ()>::operator()() in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix 18# nix::handleExceptions(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::function<int ()>) in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/lib/liblix.dylib 19# main in /nix/store/4dw2mganmnsxy31wyjll1vrn3gp5x345-lix-2.95.2/bin/nix fish: Job 1, 'sudo /nix/var/nix/profiles/defa…' terminated by signal SIGABRT (Abort) ``` my workaround: `sudo ln -Ffs /nix/store/vk77mkl9vqnpfwlk875j6b80df37yw01-user-environment /nix/var/nix/profiles/default` effectively rolling back the default profile to an older version which was functional and then was able to run the upgrade all the way up.

I had the same error when upgrading to both 2.95.1 and 2.95.2. (I thought it was just me the first time.)

I had the same error when upgrading to both 2.95.1 and 2.95.2. (I thought it was just me the first time.)
Owner

Thank you for the report, we are on the double looking into this. Apologies for the operational issues.

Thank you for the report, we are on the double looking into this. Apologies for the operational issues.
raito changed title from nix-daemon crash on upgrade to nix-daemon crash on upgrade from 2.95.1 to 2.95.2 2026-05-06 09:16:44 +00:00
raito changed title from nix-daemon crash on upgrade from 2.95.1 to 2.95.2 to nix-daemon crash on upgrade from 2.95.1 to 2.95.2 via nix upgrade-nix 2026-05-06 09:16:55 +00:00
Owner

We have identified the issue and a fix is open at https://gerrit.lix.systems/c/lix/+/5567. We will shortly be releasing 2.95.3 quickly to enable upgrades.

We have identified the issue and a fix is open at https://gerrit.lix.systems/c/lix/+/5567. We will shortly be releasing 2.95.3 quickly to enable upgrades.
Member

This issue was mentioned on Gerrit on the following CLs:

  • commit message in cl/5567 ("upgrade-nix: use --store local, so we don't kill our own access to the daemon [backport]")
<!-- GERRIT_LINKBOT: {"cls": [{"backlink": "https://gerrit.lix.systems/c/lix/+/5567", "number": 5567, "kind": "commit message"}], "cl_meta": {"5567": {"change_title": "upgrade-nix: use --store local, so we don't kill our own access to the daemon [backport]"}}} --> This issue was mentioned on Gerrit on the following CLs: * commit message in [cl/5567](https://gerrit.lix.systems/c/lix/+/5567) ("upgrade-nix: use --store local, so we don't kill our own access to the daemon [backport]")
Sign in to join this conversation.
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lix-project/lix#1207
No description provided.