From 99d0dd3a432e5099e9990f7d44b523346d26e13b Mon Sep 17 00:00:00 2001 From: John Ericson Date: Wed, 12 Mar 2025 16:54:39 -0400 Subject: [PATCH] Simplify hook error status logic The simplification here is due to a long-standing bug, but it is not worth fixing the bug at this time. Instead we've finally written up an issue for the bug, and referenced the issue number in the code. --- src/libstore/build/derivation-goal.cc | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/src/libstore/build/derivation-goal.cc b/src/libstore/build/derivation-goal.cc index 4c91c65fb..7f2735489 100644 --- a/src/libstore/build/derivation-goal.cc +++ b/src/libstore/build/derivation-goal.cc @@ -930,28 +930,11 @@ Goal::Co DerivationGoal::hookDone() appendLogTailErrorMsg(worker, drvPath, logTail, msg); - auto e = BuildError(msg); - outputLocks.unlock(); - BuildResult::Status st = BuildResult::MiscFailure; + /* TODO (once again) support fine-grained error codes, see issue #12641. */ -#ifndef _WIN32 - if (WIFEXITED(status) && WEXITSTATUS(status) == 101) - st = BuildResult::TimedOut; - - else if (WIFEXITED(status) && WEXITSTATUS(status) == 100) - { - assert(derivationType); - st = - dynamic_cast(&e) ? BuildResult::NotDeterministic : - statusOk(status) ? BuildResult::OutputRejected : - !derivationType->isSandboxed() ? BuildResult::TransientFailure : - BuildResult::PermanentFailure; - } -#endif - - co_return done(st, {}, std::move(e)); + co_return done(BuildResult::MiscFailure, {}, BuildError(msg)); } /* Compute the FS closure of the outputs and register them as