aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/daemon.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libstore/daemon.cc b/src/libstore/daemon.cc
index 3e44f6e31..18b2f64c1 100644
--- a/src/libstore/daemon.cc
+++ b/src/libstore/daemon.cc
@@ -574,6 +574,15 @@ static void performOp(TunnelLogger * logger, ref<Store> store,
case WorkerProto::Op::BuildDerivation: {
auto drvPath = store->parseStorePath(readString(from));
BasicDerivation drv;
+ /*
+ * Note: unlike wopEnsurePath, this operation reads a
+ * derivation-to-be-realized from the client with
+ * readDerivation(Source,Store) rather than reading it from
+ * the local store with Store::readDerivation(). Since the
+ * derivation-to-be-realized is not registered in the store
+ * it cannot be trusted that its outPath was calculated
+ * correctly.
+ */
readDerivation(from, *store, drv, Derivation::nameFromPath(drvPath));
BuildMode buildMode = (BuildMode) readInt(from);
logger->startWork();