fix: Ignore Interrupted in recursive-nix daemon worker

Otherwise, if checkInterrupt() in any of the supported store operations
would catch onto a user interrupt, the exception would bubble to the thread
start and be handled by std::terminate(): a crash.
This commit is contained in:
Robert Hensing 2024-10-10 12:31:34 +02:00
parent de0a34a362
commit 0e5a5303ad

View File

@ -65,6 +65,7 @@
#include <iostream>
#include "strings.hh"
#include "signals.hh"
namespace nix {
@ -1579,6 +1580,8 @@ void LocalDerivationGoal::startDaemon()
FdSink(remote.get()),
NotTrusted, daemon::Recursive);
debug("terminated daemon connection");
} catch (const Interrupted &) {
debug("interrupted daemon connection");
} catch (SystemError &) {
ignoreExceptionExceptInterrupt();
}