Lix 2.92.0 deadlocks during substitution #745

Open
opened 2025-03-18 11:27:34 +00:00 by arianvp · 4 comments
Member

Describe the bug

A clear and concise description of what the bug is.

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

???
deadlock

Expected behavior

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

nix --version output

2.92.0

Additional context

(lldb) bt all
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00000001922c901c libsystem_kernel.dylib`kevent + 8
    frame #1: 0x0000000102bdb0d4 libkj-async.1.0.2.dylib`kj::UnixEventPort::doKqueueWait(timespec*) + 76
    frame #2: 0x0000000102bdb7d0 libkj-async.1.0.2.dylib`kj::UnixEventPort::wait() + 160
    frame #3: 0x0000000102bc94bc libkj-async.1.0.2.dylib`kj::EventLoop::wait() + 56
    frame #4: 0x0000000102bc9c2c libkj-async.1.0.2.dylib`kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation) + 508
    frame #5: 0x0000000101729d04 liblixstore.dylib`kj::Promise<boost::outcome_v2::basic_result<nix::Worker::Results, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<nix::Worker::Results, std::exception_ptr, void>>>::wait(kj::WaitScope&, kj::SourceLocation) + 88
    frame #6: 0x0000000101729374 liblixstore.dylib`nix::Store::buildPaths(std::__1::vector<nix::DerivedPath, std::__1::allocator<nix::DerivedPath>> const&, nix::BuildMode, std::__1::shared_ptr<nix::Store>) + 164
    frame #7: 0x00000001015d257c liblixstore.dylib`nix::daemon::performOp(nix::daemon::TunnelLogger*, nix::ref<nix::Store>, nix::TrustedFlag, nix::daemon::RecursiveFlag, unsigned int, nix::Source&, nix::BufferedSink&, nix::WorkerProto::Op) + 3412
    frame #8: 0x00000001015d08bc liblixstore.dylib`nix::daemon::processConnection(nix::ref<nix::Store>, nix::FdSource&, nix::FdSink&, nix::TrustedFlag, nix::daemon::RecursiveFlag) + 1216
    frame #9: 0x00000001006278e4 nix`std::__1::__function::__func<nix::daemonLoop(std::__1::optional<nix::TrustedFlag>)::$_0, std::__1::allocator<nix::daemonLoop(std::__1::optional<nix::TrustedFlag>)::$_0>, void ()>::operator()() + 428
    frame #10: 0x0000000100bf7c00 liblixutil.dylib`std::__1::__function::__func<nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&)::$_0, std::__1::allocator<nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&)::$_0>, void ()>::operator()() + 72
    frame #11: 0x0000000100bf5110 liblixutil.dylib`nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&) + 456
    frame #12: 0x00000001006243c8 nix`nix::runDaemon(bool, std::__1::optional<nix::TrustedFlag>) + 3096
    frame #13: 0x0000000100622c24 nix`nix::main_nix_daemon(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>>>>) + 624
    frame #14: 0x000000010062859c nix`decltype(std::declval<int (*&)(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::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::__1::__invoke[abi:v160006]<int (*&)(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::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>>>>>(int (*&)(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::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>>>>&&) + 160
    frame #15: 0x000000010069f894 nix`nix::mainWrapped(int, char**) + 1324
    frame #16: 0x00000001009d2a40 liblixmain.dylib`nix::handleExceptions(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::function<void ()>) + 288
    frame #17: 0x00000001006a6f40 nix`main + 112
    frame #18: 0x0000000191f84274 dyld`start + 2840
  thread #2, name = 'signal handler'
    frame #0: 0x00000001922ce960 libsystem_kernel.dylib`__sigwait + 8
    frame #1: 0x0000000192304a9c libsystem_pthread.dylib`sigwait + 40
    frame #2: 0x0000000100c0834c liblixutil.dylib`nix::signalHandlerThread(unsigned int) + 52
    frame #3: 0x0000000100c08d50 liblixutil.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(unsigned int), unsigned int>>(void*) + 96
    frame #4: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #3, name = 'MonitorFdHup'
    frame #0: 0x00000001922cb830 libsystem_kernel.dylib`poll + 8
    frame #1: 0x00000001015d73d4 liblixstore.dylib`nix::MonitorFdHup::MonitorFdHup(int)::'lambda'()::operator()() const + 132
    frame #2: 0x00000001015d7230 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, nix::MonitorFdHup::MonitorFdHup(int)::'lambda'()>>(void*) + 92
    frame #3: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #4
    frame #0: 0x00000001922c6eb8 libsystem_kernel.dylib`flock + 8
    frame #1: 0x000000010169ff88 liblixstore.dylib`nix::lockFile(int, nix::LockType, bool) + 52
    frame #2: 0x00000001016a03bc liblixstore.dylib`nix::PathLocks::lockPaths(std::__1::set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::less<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>>>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool) + 568
    frame #3: 0x000000010165f600 liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 440
    frame #4: 0x00000001016e63d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996
    frame #5: 0x00000001017606f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560
    frame #6: 0x000000010176043c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44
    frame #7: 0x0000000101760c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112
    frame #8: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
(lldb) 

And

* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204
    frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
    frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88
    frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28
    frame #5: 0x000000010333ffe0 liblixstore.dylib`nix::PathSubstitutionGoal::~PathSubstitutionGoal() + 56
    frame #6: 0x000000010334039c liblixstore.dylib`nix::PathSubstitutionGoal::~PathSubstitutionGoal() + 20
    frame #7: 0x00000001033504bc liblixstore.dylib`std::__1::__shared_ptr_pointer<nix::PathSubstitutionGoal*, std::__1::default_delete<nix::PathSubstitutionGoal>, std::__1::allocator<nix::PathSubstitutionGoal>>::__on_zero_shared() + 28
    frame #8: 0x000000010334dd9c liblixstore.dylib`void std::__1::__destroy_at[abi:v160006]<std::__1::pair<nix::StorePath const, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, 0>(std::__1::pair<nix::StorePath const, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>*) + 148
    frame #9: 0x000000010334dce0 liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 52
    frame #10: 0x000000010334dcd8 liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 44
    frame #11: 0x000000010334dcd8 liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 44
    frame #12: 0x000000010334dccc liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 32
    frame #13: 0x000000010334dcd8 liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 44
    frame #14: 0x000000010334dccc liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 32
    frame #15: 0x000000010334dccc liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 32
    frame #16: 0x000000010334dccc liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 32
    frame #17: 0x00000001033477b8 liblixstore.dylib`nix::Worker::~Worker() + 132
    frame #18: 0x0000000103313614 liblixstore.dylib`kj::Promise<boost::outcome_v2::basic_result<nix::Worker::Results, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<nix::Worker::Results, std::exception_ptr, void>>> nix::processGoals<nix::Store::buildPaths(std::__1::vector<nix::DerivedPath, std::__1::allocator<nix::DerivedPath>> const&, nix::BuildMode, std::__1::shared_ptr<nix::Store>)::$_0>(nix::Store&, nix::Store&, kj::AsyncIoContext&, nix::Store::buildPaths(std::__1::vector<nix::DerivedPath, std::__1::allocator<nix::DerivedPath>> const&, nix::BuildMode, std::__1::shared_ptr<nix::Store>)::$_0&&) (.resume) + 332
    frame #19: 0x0000000104714370 libkj-async.1.0.2.dylib`non-virtual thunk to kj::_::CoroutineBase::fire() + 32
    frame #20: 0x000000010471b27c libkj-async.1.0.2.dylib`kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation)::$_2::operator()() const + 264
    frame #21: 0x000000010470dc1c libkj-async.1.0.2.dylib`kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation) + 492
    frame #22: 0x000000010330dd04 liblixstore.dylib`kj::Promise<boost::outcome_v2::basic_result<nix::Worker::Results, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<nix::Worker::Results, std::exception_ptr, void>>>::wait(kj::WaitScope&, kj::SourceLocation) + 88
    frame #23: 0x000000010330d374 liblixstore.dylib`nix::Store::buildPaths(std::__1::vector<nix::DerivedPath, std::__1::allocator<nix::DerivedPath>> const&, nix::BuildMode, std::__1::shared_ptr<nix::Store>) + 164
    frame #24: 0x00000001031b657c liblixstore.dylib`nix::daemon::performOp(nix::daemon::TunnelLogger*, nix::ref<nix::Store>, nix::TrustedFlag, nix::daemon::RecursiveFlag, unsigned int, nix::Source&, nix::BufferedSink&, nix::WorkerProto::Op) + 3412
    frame #25: 0x00000001031b48bc liblixstore.dylib`nix::daemon::processConnection(nix::ref<nix::Store>, nix::FdSource&, nix::FdSink&, nix::TrustedFlag, nix::daemon::RecursiveFlag) + 1216
    frame #26: 0x000000010235f8e4 nix`std::__1::__function::__func<nix::daemonLoop(std::__1::optional<nix::TrustedFlag>)::$_0, std::__1::allocator<nix::daemonLoop(std::__1::optional<nix::TrustedFlag>)::$_0>, void ()>::operator()() + 428
    frame #27: 0x00000001028cfc00 liblixutil.dylib`std::__1::__function::__func<nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&)::$_0, std::__1::allocator<nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&)::$_0>, void ()>::operator()() + 72
    frame #28: 0x00000001028cd110 liblixutil.dylib`nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&) + 456
    frame #29: 0x000000010235c3c8 nix`nix::runDaemon(bool, std::__1::optional<nix::TrustedFlag>) + 3096
    frame #30: 0x000000010235ac24 nix`nix::main_nix_daemon(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>>>>) + 624
    frame #31: 0x000000010236059c nix`decltype(std::declval<int (*&)(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::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::__1::__invoke[abi:v160006]<int (*&)(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::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>>>>>(int (*&)(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::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>>>>&&) + 160
    frame #32: 0x00000001023d7894 nix`nix::mainWrapped(int, char**) + 1324
    frame #33: 0x000000010270aa40 liblixmain.dylib`nix::handleExceptions(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::function<void ()>) + 288
    frame #34: 0x00000001023def40 nix`main + 112
    frame #35: 0x0000000191f84274 dyld`start + 2840
  thread #2, name = 'signal handler'
    frame #0: 0x00000001922ce960 libsystem_kernel.dylib`__sigwait + 8
    frame #1: 0x0000000192304a9c libsystem_pthread.dylib`sigwait + 40
    frame #2: 0x00000001028e034c liblixutil.dylib`nix::signalHandlerThread(unsigned int) + 52
    frame #3: 0x00000001028e0d50 liblixutil.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(unsigned int), unsigned int>>(void*) + 96
    frame #4: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #3, name = 'MonitorFdHup'
    frame #0: 0x00000001922cb830 libsystem_kernel.dylib`poll + 8
    frame #1: 0x00000001031bb3d4 liblixstore.dylib`nix::MonitorFdHup::MonitorFdHup(int)::'lambda'()::operator()() const + 132
    frame #2: 0x00000001031bb230 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, nix::MonitorFdHup::MonitorFdHup(int)::'lambda'()>>(void*) + 92
    frame #3: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #4
    frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204
    frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
    frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88
    frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28
    frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180
    frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56
    frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12
    frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160
    frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800
    frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108
    frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44
    frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56
    frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260
    frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148
    frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84
    frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88
    frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596
    frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996
    frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560
    frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44
    frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112
    frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #5
    frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204
    frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
    frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88
    frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28
    frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180
    frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56
    frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12
    frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160
    frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800
    frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108
    frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44
    frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56
    frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260
    frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148
    frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84
    frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88
    frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596
    frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996
    frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560
    frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44
    frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112
    frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #6
    frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204
    frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
    frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88
    frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28
    frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180
    frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56
    frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12
    frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160
    frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800
    frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108
    frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44
    frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56
    frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260
    frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148
    frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84
    frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88
    frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596
    frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996
    frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560
    frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44
    frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112
    frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #7
    frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204
    frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
    frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88
    frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28
    frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180
    frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56
    frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12
    frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160
    frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800
    frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108
    frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44
    frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56
    frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260
    frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148
    frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84
    frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88
    frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596
    frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996
    frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560
    frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44
    frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112
    frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #8
    frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204
    frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
    frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88
    frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28
    frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180
    frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56
    frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12
    frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160
    frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800
    frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108
    frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44
    frame #12: 0x00000001028dca28 liblixutil.dylib`nix::readString(nix::Source&, unsigned long) + 304
    frame #13: 0x0000000102851770 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_1::operator()(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool&) const (.resume) + 292
    frame #14: 0x00000001028537b4 liblixutil.dylib`nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>) (.resume) + 180
    frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84
    frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88
    frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596
    frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996
    frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560
    frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44
    frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112
    frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #9
    frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204
    frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
    frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88
    frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28
    frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180
    frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56
    frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12
    frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160
    frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800
    frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108
    frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44
    frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56
    frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260
    frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148
    frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84
    frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88
    frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596
    frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996
    frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560
    frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44
    frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112
    frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #10
    frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204
    frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
    frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88
    frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28
    frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180
    frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56
    frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12
    frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160
    frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800
    frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108
    frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44
    frame #12: 0x00000001028dc94c liblixutil.dylib`nix::readString(nix::Source&, unsigned long) + 84
    frame #13: 0x0000000102852a5c liblixutil.dylib`nix::nar::parse(nix::Source&) (.resume) + 408
    frame #14: 0x00000001028537b4 liblixutil.dylib`nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>) (.resume) + 180
    frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84
    frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88
    frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596
    frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996
    frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560
    frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44
    frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112
    frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #11
    frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204
    frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
    frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88
    frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28
    frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180
    frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56
    frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12
    frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160
    frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800
    frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108
    frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44
    frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56
    frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260
    frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148
    frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84
    frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88
    frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596
    frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996
    frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560
    frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44
    frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112
    frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #12
    frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204
    frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24
    frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88
    frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28
    frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180
    frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56
    frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12
    frame #8: 0x00000001031f6c14 liblixstore.dylib`nix::curlFileTransfer::enqueueFileTransfer(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>> const&, std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, bool) + 552
    frame #9: 0x00000001031f09d0 liblixstore.dylib`nix::curlFileTransfer::download(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>> const&) + 52
    frame #10: 0x00000001032274d4 liblixstore.dylib`nix::HttpBinaryCacheStore::getFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 116
    frame #11: 0x000000010317db20 liblixstore.dylib`nix::BinaryCacheStore::narFromPath(nix::StorePath const&) + 156
    frame #12: 0x00000001032d6fc8 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 116
    frame #13: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108
    frame #14: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44
    frame #15: 0x00000001028dc94c liblixutil.dylib`nix::readString(nix::Source&, unsigned long) + 84
    frame #16: 0x0000000102852a5c liblixutil.dylib`nix::nar::parse(nix::Source&) (.resume) + 408
    frame #17: 0x00000001028537b4 liblixutil.dylib`nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>) (.resume) + 180
    frame #18: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84
    frame #19: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88
    frame #20: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596
    frame #21: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996
    frame #22: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560
    frame #23: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44
    frame #24: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112
    frame #25: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
  thread #13, name = 'curlFileTransfer worker'
    frame #0: 0x00000001922cb830 libsystem_kernel.dylib`poll + 8
    frame #1: 0x00000001043ea498 libcurl.4.dylib`Curl_poll + 192
    frame #2: 0x00000001043df028 libcurl.4.dylib`multi_wait + 504
    frame #3: 0x00000001031f1acc liblixstore.dylib`nix::curlFileTransfer::workerThreadMain() + 708
    frame #4: 0x00000001031f1598 liblixstore.dylib`nix::curlFileTransfer::workerThreadEntry() + 48
    frame #5: 0x00000001031f147c liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, nix::curlFileTransfer::curlFileTransfer(unsigned int)::'lambda'()>>(void*) + 108
    frame #6: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136
(lldb) 
## Describe the bug A clear and concise description of what the bug is. 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 ??? deadlock ## Expected behavior A clear and concise description of what you expected to happen. ## `nix --version` output 2.92.0 ## Additional context ``` (lldb) bt all * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x00000001922c901c libsystem_kernel.dylib`kevent + 8 frame #1: 0x0000000102bdb0d4 libkj-async.1.0.2.dylib`kj::UnixEventPort::doKqueueWait(timespec*) + 76 frame #2: 0x0000000102bdb7d0 libkj-async.1.0.2.dylib`kj::UnixEventPort::wait() + 160 frame #3: 0x0000000102bc94bc libkj-async.1.0.2.dylib`kj::EventLoop::wait() + 56 frame #4: 0x0000000102bc9c2c libkj-async.1.0.2.dylib`kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation) + 508 frame #5: 0x0000000101729d04 liblixstore.dylib`kj::Promise<boost::outcome_v2::basic_result<nix::Worker::Results, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<nix::Worker::Results, std::exception_ptr, void>>>::wait(kj::WaitScope&, kj::SourceLocation) + 88 frame #6: 0x0000000101729374 liblixstore.dylib`nix::Store::buildPaths(std::__1::vector<nix::DerivedPath, std::__1::allocator<nix::DerivedPath>> const&, nix::BuildMode, std::__1::shared_ptr<nix::Store>) + 164 frame #7: 0x00000001015d257c liblixstore.dylib`nix::daemon::performOp(nix::daemon::TunnelLogger*, nix::ref<nix::Store>, nix::TrustedFlag, nix::daemon::RecursiveFlag, unsigned int, nix::Source&, nix::BufferedSink&, nix::WorkerProto::Op) + 3412 frame #8: 0x00000001015d08bc liblixstore.dylib`nix::daemon::processConnection(nix::ref<nix::Store>, nix::FdSource&, nix::FdSink&, nix::TrustedFlag, nix::daemon::RecursiveFlag) + 1216 frame #9: 0x00000001006278e4 nix`std::__1::__function::__func<nix::daemonLoop(std::__1::optional<nix::TrustedFlag>)::$_0, std::__1::allocator<nix::daemonLoop(std::__1::optional<nix::TrustedFlag>)::$_0>, void ()>::operator()() + 428 frame #10: 0x0000000100bf7c00 liblixutil.dylib`std::__1::__function::__func<nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&)::$_0, std::__1::allocator<nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&)::$_0>, void ()>::operator()() + 72 frame #11: 0x0000000100bf5110 liblixutil.dylib`nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&) + 456 frame #12: 0x00000001006243c8 nix`nix::runDaemon(bool, std::__1::optional<nix::TrustedFlag>) + 3096 frame #13: 0x0000000100622c24 nix`nix::main_nix_daemon(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>>>>) + 624 frame #14: 0x000000010062859c nix`decltype(std::declval<int (*&)(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::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::__1::__invoke[abi:v160006]<int (*&)(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::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>>>>>(int (*&)(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::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>>>>&&) + 160 frame #15: 0x000000010069f894 nix`nix::mainWrapped(int, char**) + 1324 frame #16: 0x00000001009d2a40 liblixmain.dylib`nix::handleExceptions(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::function<void ()>) + 288 frame #17: 0x00000001006a6f40 nix`main + 112 frame #18: 0x0000000191f84274 dyld`start + 2840 thread #2, name = 'signal handler' frame #0: 0x00000001922ce960 libsystem_kernel.dylib`__sigwait + 8 frame #1: 0x0000000192304a9c libsystem_pthread.dylib`sigwait + 40 frame #2: 0x0000000100c0834c liblixutil.dylib`nix::signalHandlerThread(unsigned int) + 52 frame #3: 0x0000000100c08d50 liblixutil.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(unsigned int), unsigned int>>(void*) + 96 frame #4: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #3, name = 'MonitorFdHup' frame #0: 0x00000001922cb830 libsystem_kernel.dylib`poll + 8 frame #1: 0x00000001015d73d4 liblixstore.dylib`nix::MonitorFdHup::MonitorFdHup(int)::'lambda'()::operator()() const + 132 frame #2: 0x00000001015d7230 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, nix::MonitorFdHup::MonitorFdHup(int)::'lambda'()>>(void*) + 92 frame #3: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #4 frame #0: 0x00000001922c6eb8 libsystem_kernel.dylib`flock + 8 frame #1: 0x000000010169ff88 liblixstore.dylib`nix::lockFile(int, nix::LockType, bool) + 52 frame #2: 0x00000001016a03bc liblixstore.dylib`nix::PathLocks::lockPaths(std::__1::set<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::less<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>>>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool) + 568 frame #3: 0x000000010165f600 liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 440 frame #4: 0x00000001016e63d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996 frame #5: 0x00000001017606f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560 frame #6: 0x000000010176043c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44 frame #7: 0x0000000101760c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112 frame #8: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 (lldb) ``` And ``` * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP * frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204 frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24 frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88 frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28 frame #5: 0x000000010333ffe0 liblixstore.dylib`nix::PathSubstitutionGoal::~PathSubstitutionGoal() + 56 frame #6: 0x000000010334039c liblixstore.dylib`nix::PathSubstitutionGoal::~PathSubstitutionGoal() + 20 frame #7: 0x00000001033504bc liblixstore.dylib`std::__1::__shared_ptr_pointer<nix::PathSubstitutionGoal*, std::__1::default_delete<nix::PathSubstitutionGoal>, std::__1::allocator<nix::PathSubstitutionGoal>>::__on_zero_shared() + 28 frame #8: 0x000000010334dd9c liblixstore.dylib`void std::__1::__destroy_at[abi:v160006]<std::__1::pair<nix::StorePath const, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, 0>(std::__1::pair<nix::StorePath const, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>*) + 148 frame #9: 0x000000010334dce0 liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 52 frame #10: 0x000000010334dcd8 liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 44 frame #11: 0x000000010334dcd8 liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 44 frame #12: 0x000000010334dccc liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 32 frame #13: 0x000000010334dcd8 liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 44 frame #14: 0x000000010334dccc liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 32 frame #15: 0x000000010334dccc liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 32 frame #16: 0x000000010334dccc liblixstore.dylib`std::__1::__tree<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::__map_value_compare<nix::StorePath, std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, std::__1::less<nix::StorePath>, true>, std::__1::allocator<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>>>::destroy(std::__1::__tree_node<std::__1::__value_type<nix::StorePath, nix::Worker::CachedGoal<nix::PathSubstitutionGoal>>, void*>*) + 32 frame #17: 0x00000001033477b8 liblixstore.dylib`nix::Worker::~Worker() + 132 frame #18: 0x0000000103313614 liblixstore.dylib`kj::Promise<boost::outcome_v2::basic_result<nix::Worker::Results, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<nix::Worker::Results, std::exception_ptr, void>>> nix::processGoals<nix::Store::buildPaths(std::__1::vector<nix::DerivedPath, std::__1::allocator<nix::DerivedPath>> const&, nix::BuildMode, std::__1::shared_ptr<nix::Store>)::$_0>(nix::Store&, nix::Store&, kj::AsyncIoContext&, nix::Store::buildPaths(std::__1::vector<nix::DerivedPath, std::__1::allocator<nix::DerivedPath>> const&, nix::BuildMode, std::__1::shared_ptr<nix::Store>)::$_0&&) (.resume) + 332 frame #19: 0x0000000104714370 libkj-async.1.0.2.dylib`non-virtual thunk to kj::_::CoroutineBase::fire() + 32 frame #20: 0x000000010471b27c libkj-async.1.0.2.dylib`kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation)::$_2::operator()() const + 264 frame #21: 0x000000010470dc1c libkj-async.1.0.2.dylib`kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation) + 492 frame #22: 0x000000010330dd04 liblixstore.dylib`kj::Promise<boost::outcome_v2::basic_result<nix::Worker::Results, std::exception_ptr, boost::outcome_v2::policy::exception_ptr_rethrow<nix::Worker::Results, std::exception_ptr, void>>>::wait(kj::WaitScope&, kj::SourceLocation) + 88 frame #23: 0x000000010330d374 liblixstore.dylib`nix::Store::buildPaths(std::__1::vector<nix::DerivedPath, std::__1::allocator<nix::DerivedPath>> const&, nix::BuildMode, std::__1::shared_ptr<nix::Store>) + 164 frame #24: 0x00000001031b657c liblixstore.dylib`nix::daemon::performOp(nix::daemon::TunnelLogger*, nix::ref<nix::Store>, nix::TrustedFlag, nix::daemon::RecursiveFlag, unsigned int, nix::Source&, nix::BufferedSink&, nix::WorkerProto::Op) + 3412 frame #25: 0x00000001031b48bc liblixstore.dylib`nix::daemon::processConnection(nix::ref<nix::Store>, nix::FdSource&, nix::FdSink&, nix::TrustedFlag, nix::daemon::RecursiveFlag) + 1216 frame #26: 0x000000010235f8e4 nix`std::__1::__function::__func<nix::daemonLoop(std::__1::optional<nix::TrustedFlag>)::$_0, std::__1::allocator<nix::daemonLoop(std::__1::optional<nix::TrustedFlag>)::$_0>, void ()>::operator()() + 428 frame #27: 0x00000001028cfc00 liblixutil.dylib`std::__1::__function::__func<nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&)::$_0, std::__1::allocator<nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&)::$_0>, void ()>::operator()() + 72 frame #28: 0x00000001028cd110 liblixutil.dylib`nix::startProcess(std::__1::function<void ()>, nix::ProcessOptions const&) + 456 frame #29: 0x000000010235c3c8 nix`nix::runDaemon(bool, std::__1::optional<nix::TrustedFlag>) + 3096 frame #30: 0x000000010235ac24 nix`nix::main_nix_daemon(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>>>>) + 624 frame #31: 0x000000010236059c nix`decltype(std::declval<int (*&)(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::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::__1::__invoke[abi:v160006]<int (*&)(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::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>>>>>(int (*&)(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::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>>>>&&) + 160 frame #32: 0x00000001023d7894 nix`nix::mainWrapped(int, char**) + 1324 frame #33: 0x000000010270aa40 liblixmain.dylib`nix::handleExceptions(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::function<void ()>) + 288 frame #34: 0x00000001023def40 nix`main + 112 frame #35: 0x0000000191f84274 dyld`start + 2840 thread #2, name = 'signal handler' frame #0: 0x00000001922ce960 libsystem_kernel.dylib`__sigwait + 8 frame #1: 0x0000000192304a9c libsystem_pthread.dylib`sigwait + 40 frame #2: 0x00000001028e034c liblixutil.dylib`nix::signalHandlerThread(unsigned int) + 52 frame #3: 0x00000001028e0d50 liblixutil.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(unsigned int), unsigned int>>(void*) + 96 frame #4: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #3, name = 'MonitorFdHup' frame #0: 0x00000001922cb830 libsystem_kernel.dylib`poll + 8 frame #1: 0x00000001031bb3d4 liblixstore.dylib`nix::MonitorFdHup::MonitorFdHup(int)::'lambda'()::operator()() const + 132 frame #2: 0x00000001031bb230 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, nix::MonitorFdHup::MonitorFdHup(int)::'lambda'()>>(void*) + 92 frame #3: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #4 frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204 frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24 frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88 frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28 frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180 frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56 frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12 frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160 frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800 frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108 frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44 frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56 frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260 frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148 frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84 frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88 frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596 frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996 frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560 frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44 frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112 frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #5 frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204 frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24 frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88 frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28 frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180 frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56 frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12 frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160 frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800 frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108 frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44 frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56 frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260 frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148 frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84 frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88 frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596 frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996 frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560 frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44 frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112 frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #6 frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204 frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24 frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88 frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28 frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180 frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56 frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12 frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160 frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800 frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108 frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44 frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56 frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260 frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148 frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84 frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88 frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596 frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996 frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560 frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44 frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112 frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #7 frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204 frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24 frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88 frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28 frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180 frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56 frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12 frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160 frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800 frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108 frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44 frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56 frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260 frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148 frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84 frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88 frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596 frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996 frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560 frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44 frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112 frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #8 frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204 frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24 frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88 frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28 frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180 frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56 frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12 frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160 frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800 frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108 frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44 frame #12: 0x00000001028dca28 liblixutil.dylib`nix::readString(nix::Source&, unsigned long) + 304 frame #13: 0x0000000102851770 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_1::operator()(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool&) const (.resume) + 292 frame #14: 0x00000001028537b4 liblixutil.dylib`nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>) (.resume) + 180 frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84 frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88 frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596 frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996 frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560 frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44 frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112 frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #9 frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204 frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24 frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88 frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28 frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180 frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56 frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12 frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160 frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800 frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108 frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44 frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56 frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260 frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148 frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84 frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88 frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596 frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996 frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560 frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44 frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112 frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #10 frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204 frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24 frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88 frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28 frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180 frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56 frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12 frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160 frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800 frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108 frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44 frame #12: 0x00000001028dc94c liblixutil.dylib`nix::readString(nix::Source&, unsigned long) + 84 frame #13: 0x0000000102852a5c liblixutil.dylib`nix::nar::parse(nix::Source&) (.resume) + 408 frame #14: 0x00000001028537b4 liblixutil.dylib`nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>) (.resume) + 180 frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84 frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88 frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596 frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996 frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560 frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44 frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112 frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #11 frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204 frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24 frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88 frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28 frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180 frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56 frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12 frame #8: 0x00000001031ac930 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::BinaryCacheStore::narFromPath(nix::StorePath const&)::$_0::operator()<nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats>(nix::ref<nix::NarInfo const>, nix::box_ptr<nix::Source>, nix::Store::Stats&) const (.destroy) + 160 frame #9: 0x00000001032d7274 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 800 frame #10: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108 frame #11: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44 frame #12: 0x00000001028dc068 liblixutil.dylib`nix::Source::operator()(char*, unsigned long) + 56 frame #13: 0x0000000102850084 liblixutil.dylib`nix::nar::parseObject(nix::Source&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0::operator()(nix::Source&, unsigned long long&) const (.resume) + 260 frame #14: 0x0000000102852ff8 liblixutil.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>)::$_2::operator()(nix::nar::File) const::'lambda'(auto, auto&)::operator()<nix::nar::File, nix::NARParseVisitor>(auto, auto&) const (.resume) + 148 frame #15: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84 frame #16: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88 frame #17: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596 frame #18: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996 frame #19: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560 frame #20: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44 frame #21: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112 frame #22: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #12 frame #0: 0x00000001922c66ec libsystem_kernel.dylib`__psynch_cvwait + 8 frame #1: 0x0000000192304894 libsystem_pthread.dylib`_pthread_cond_wait + 1204 frame #2: 0x000000010304c5c4 libc++.1.0.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 24 frame #3: 0x000000010304d328 libc++.1.0.dylib`std::__1::__assoc_sub_state::copy() + 88 frame #4: 0x000000010304d794 libc++.1.0.dylib`std::__1::future<void>::get() + 28 frame #5: 0x00000001031ff1dc liblixstore.dylib`nix::curlFileTransfer::cancel(std::__1::shared_ptr<nix::curlFileTransfer::TransferItem> const&) + 180 frame #6: 0x00000001031fefe0 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 56 frame #7: 0x00000001031f9b74 liblixstore.dylib`nix::curlFileTransfer::TransferSource::~TransferSource() + 12 frame #8: 0x00000001031f6c14 liblixstore.dylib`nix::curlFileTransfer::enqueueFileTransfer(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>> const&, std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, bool) + 552 frame #9: 0x00000001031f09d0 liblixstore.dylib`nix::curlFileTransfer::download(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>> const&) + 52 frame #10: 0x00000001032274d4 liblixstore.dylib`nix::HttpBinaryCacheStore::getFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) + 116 frame #11: 0x000000010317db20 liblixstore.dylib`nix::BinaryCacheStore::narFromPath(nix::StorePath const&) + 156 frame #12: 0x00000001032d6fc8 liblixstore.dylib`nix::Generator<std::__1::span<char const, 18446744073709551615ul>, nix::SerializingTransform> nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag)::$_0::operator()<nix::Activity, nix::ref<nix::ValidPathInfo const>, nix::Store, nix::StorePath const>(nix::Activity&, nix::ref<nix::ValidPathInfo const>&, nix::Store&, nix::StorePath const&) const (.resume) + 116 frame #13: 0x000000010318710c liblixstore.dylib`nix::GeneratorSource::read(char*, unsigned long) + 108 frame #14: 0x0000000103184530 liblixstore.dylib`nix::TeeSource::read(char*, unsigned long) + 44 frame #15: 0x00000001028dc94c liblixutil.dylib`nix::readString(nix::Source&, unsigned long) + 84 frame #16: 0x0000000102852a5c liblixutil.dylib`nix::nar::parse(nix::Source&) (.resume) + 408 frame #17: 0x00000001028537b4 liblixutil.dylib`nix::restore(nix::NARParseVisitor&, nix::Generator<std::__1::variant<nix::nar::MetadataString, nix::nar::MetadataRaw, nix::nar::File, nix::nar::Symlink, nix::nar::Directory>, void>) (.resume) + 180 frame #18: 0x0000000102846d14 liblixutil.dylib`nix::parseDump(nix::NARParseVisitor&, nix::Source&) + 84 frame #19: 0x0000000102846e58 liblixutil.dylib`nix::restorePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, nix::Source&) + 88 frame #20: 0x000000010324369c liblixstore.dylib`nix::LocalStore::addToStore(nix::ValidPathInfo const&, nix::Source&, nix::RepairFlag, nix::CheckSigsFlag) + 596 frame #21: 0x00000001032ca3d4 liblixstore.dylib`nix::copyStorePath(nix::Store&, nix::Store&, nix::StorePath const&, nix::RepairFlag, nix::CheckSigsFlag) + 1996 frame #22: 0x00000001033446f4 liblixstore.dylib`std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>::operator()() + 560 frame #23: 0x000000010334443c liblixstore.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::__execute() + 44 frame #24: 0x0000000103344c90 liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<nix::PathSubstitutionGoal::tryToRun()::$_0>>*>>(void*) + 112 frame #25: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 thread #13, name = 'curlFileTransfer worker' frame #0: 0x00000001922cb830 libsystem_kernel.dylib`poll + 8 frame #1: 0x00000001043ea498 libcurl.4.dylib`Curl_poll + 192 frame #2: 0x00000001043df028 libcurl.4.dylib`multi_wait + 504 frame #3: 0x00000001031f1acc liblixstore.dylib`nix::curlFileTransfer::workerThreadMain() + 708 frame #4: 0x00000001031f1598 liblixstore.dylib`nix::curlFileTransfer::workerThreadEntry() + 48 frame #5: 0x00000001031f147c liblixstore.dylib`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, nix::curlFileTransfer::curlFileTransfer(unsigned int)::'lambda'()>>(void*) + 108 frame #6: 0x00000001923042e4 libsystem_pthread.dylib`_pthread_start + 136 (lldb) ```
Author
Member

Triggered this by C-c'ing a slow substitution

Triggered this by `C-c`'ing a slow substitution
Owner

you're obviously running something pre ec44c8bd6c, judging by PathLocks::lockPaths appearing in the traces above despite this function having been gone for over a month. those versions did have locking bugs that would cause things to get stuck like this (eg #613). next time please fill in the report fully, okay?

you're obviously running something pre ec44c8bd6c0e76480b0d05cb60fa42ea5cb0ad37, judging by `PathLocks::lockPaths` appearing in the traces above despite this function having been gone for over a month. those versions did have locking bugs that would cause things to get stuck like this (eg #613). next time *please* fill in the report fully, okay?
Author
Member

Yeh this is 2.92.0. i dont know how to run master.

Updated to add that info.

Yeh this is 2.92.0. i dont know how to run master. Updated to add that info.
jade added reference release-2.92 2025-03-18 19:47:49 +00:00
jade changed title from Lix deadlocks during substitution to Lix 2.92.x deadlocks during substitution 2025-03-18 19:48:00 +00:00
jade changed title from Lix 2.92.x deadlocks during substitution to Lix 2.92.0 deadlocks during substitution 2025-03-18 19:48:08 +00:00
Owner

has this happened any more since? we haven't seen any deadlocks in a long time and would thus consider this problem to be solved

has this happened any more since? we haven't seen any deadlocks in a long time and would thus consider this problem to be solved
Sign in to join this conversation.
No milestone
No project
No assignees
2 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#745
No description provided.