Merge pull request #4373 from NixOS/ca/fix-queryPartialDrvOutputMap-when-no-derivation

Don't ignore an absent drv file in queryPartialDrvOutputMap
This commit is contained in:
Eelco Dolstra 2020-12-16 14:52:39 +01:00 committed by GitHub
commit fdc8e7cbe7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -912,12 +912,7 @@ LocalStore::queryPartialDerivationOutputMap(const StorePath& path_)
auto state(_state.lock()); auto state(_state.lock());
std::map<std::string, std::optional<StorePath>> outputs; std::map<std::string, std::optional<StorePath>> outputs;
uint64_t drvId; uint64_t drvId;
try {
drvId = queryValidPathId(*state, path); drvId = queryValidPathId(*state, path);
} catch (InvalidPath&) {
// Ignore non-existing drvs as they might still have an output map
// defined if ca-derivations is enabled
}
auto use(state->stmts->QueryDerivationOutputs.use()(drvId)); auto use(state->stmts->QueryDerivationOutputs.use()(drvId));
while (use.next()) while (use.next())
outputs.insert_or_assign( outputs.insert_or_assign(