fix(tvix): Don't call assertStorePath on BasicDerivation.builder

Upstream doesn't, and for good reason - this might not be a store path,
for example if it's /bin/sh

Fixes: b/73
Change-Id: If9aa96de2cd8ab941c098a9f122b8b302a92ec38
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2175
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Tested-by: BuildkiteCI
This commit is contained in:
Griffin Smith 2020-11-27 16:24:08 -05:00 committed by glittershark
parent c885bd0274
commit 1d22874ab2
3 changed files with 5 additions and 9 deletions

View file

@ -43,11 +43,10 @@ nix::proto::Derivation_DerivationOutput DerivationOutput::to_proto() const {
}
BasicDerivation BasicDerivation::from_proto(
const nix::proto::Derivation* proto_derivation, const nix::Store& store) {
const nix::proto::Derivation* proto_derivation) {
BasicDerivation result;
result.platform = proto_derivation->platform();
result.builder = proto_derivation->builder().path();
store.assertStorePath(result.builder);
for (auto [k, v] : proto_derivation->outputs()) {
result.outputs.emplace(k, v);

View file

@ -58,10 +58,9 @@ struct BasicDerivation {
BasicDerivation() = default;
// Convert the given proto derivation to a BasicDerivation in the given
// nix::Store.
// Convert the given proto derivation to a BasicDerivation
static BasicDerivation from_proto(
const nix::proto::Derivation* proto_derivation, const nix::Store& store);
const nix::proto::Derivation* proto_derivation);
[[nodiscard]] nix::proto::Derivation to_proto() const;

View file

@ -674,15 +674,13 @@ class WorkerServiceImpl final : public WorkerService::Service {
}
Status BuildDerivation(
grpc::ServerContext* context,
const nix::proto::BuildDerivationRequest* request,
grpc::ServerContext*, const nix::proto::BuildDerivationRequest* request,
grpc::ServerWriter<nix::proto::BuildEvent>* writer) override {
return HandleExceptions(
[&]() -> Status {
auto drv_path = request->drv_path().path();
ASSERT_INPUT_STORE_PATH(drv_path);
auto drv =
BasicDerivation::from_proto(&request->derivation(), *store_);
auto drv = BasicDerivation::from_proto(&request->derivation());
auto build_mode = nix::BuildModeFrom(request->build_mode());
if (!build_mode) {