fix drv.cc invalid output throw
EvalState::error does not return an exception instance in lix, but an exception *builder*. throwing this thing will not trigger any catches, which then causes the worker process to die without reporting an error to the collector. this confuses the collector and causes *it* to exit, effectively breaking nix-eval-jobs for anything that has broken attrs.
This commit is contained in:
parent
c3d8ca19b3
commit
793841a9b7
|
@ -50,7 +50,8 @@ Drv::Drv(std::string &attrPath, nix::EvalState &state, nix::DrvInfo &drvInfo,
|
||||||
outputs[out.first] = localStore->printStorePath(*out.second);
|
outputs[out.first] = localStore->printStorePath(*out.second);
|
||||||
}
|
}
|
||||||
} catch (const std::exception &e) {
|
} catch (const std::exception &e) {
|
||||||
throw state.error<nix::EvalError>("derivation '%s' does not have valid outputs: %s",
|
throw nix::EvalError(state,
|
||||||
|
"derivation '%s' does not have valid outputs: %s",
|
||||||
attrPath, e.what());
|
attrPath, e.what());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue