diff --git a/src/libstore/build/derivation-goal.cc b/src/libstore/build/derivation-goal.cc index 850d21bca..02f80b65e 100644 --- a/src/libstore/build/derivation-goal.cc +++ b/src/libstore/build/derivation-goal.cc @@ -895,8 +895,8 @@ Goal::Co DerivationGoal::tryToBuild() builder->startBuilder(); } catch (BuildError & e) { + builder.reset(); outputLocks.unlock(); - builder->buildUser.reset(); worker.permanentFailure = true; co_return done(BuildResult::InputRejected, {}, std::move(e)); } diff --git a/src/libstore/unix/build/derivation-builder.cc b/src/libstore/unix/build/derivation-builder.cc index e84e2db6e..a086f68ca 100644 --- a/src/libstore/unix/build/derivation-builder.cc +++ b/src/libstore/unix/build/derivation-builder.cc @@ -113,6 +113,11 @@ public: private: + /** + * User selected for running the builder. + */ + std::unique_ptr buildUser; + /** * The cgroup of the builder, if any. */ @@ -271,7 +276,7 @@ public: /** * Start building a derivation. */ - void startBuilder() override;; + void startBuilder() override; /** * Tear down build environment after the builder exits (either on diff --git a/src/libstore/unix/include/nix/store/build/derivation-builder.hh b/src/libstore/unix/include/nix/store/build/derivation-builder.hh index 81a574fd0..e16162b7a 100644 --- a/src/libstore/unix/include/nix/store/build/derivation-builder.hh +++ b/src/libstore/unix/include/nix/store/build/derivation-builder.hh @@ -145,11 +145,6 @@ struct DerivationBuilderCallbacks */ struct DerivationBuilder : RestrictionContext { - /** - * User selected for running the builder. - */ - std::unique_ptr buildUser; - /** * The process ID of the builder. */