From 7a6ce75aeaa039088800aa08036f1a1d01e672ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Thu, 27 Mar 2025 14:06:15 +0100 Subject: [PATCH] substitution-goal: convert assert into an Error This is to get more context on https://github.com/NixOS/nix/issues/12761 --- src/libstore/build/substitution-goal.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/libstore/build/substitution-goal.cc b/src/libstore/build/substitution-goal.cc index 524bf1f16..c36b77293 100644 --- a/src/libstore/build/substitution-goal.cc +++ b/src/libstore/build/substitution-goal.cc @@ -174,8 +174,13 @@ Goal::Co PathSubstitutionGoal::tryToRun(StorePath subPath, nix::ref sub, } for (auto & i : info->references) - if (i != storePath) /* ignore self-references */ - assert(worker.store.isValidPath(i)); + /* ignore self-references */ + if (i != storePath) { + if (!worker.store.isValidPath(i)) { + throw Error("reference '%s' of path '%s' is not a valid path", + worker.store.printStorePath(i), worker.store.printStorePath(storePath)); + } + } co_await yield();