hydra-eval-jobs: Transmit original Nix error when handling aggregate jobs

[?]
Oct 25, 2020, 11:15 PM
KTH67GR42MDWAAW34EYC6BPHSO33HHWZCMB3QSXRPH2LNZM45EHQC

Dependencies

  • [2] D4G756UK hydra-eval-jobs: Identify unexpected errors in handling aggregate jobs
  • [3] VUYJ47EV hydra-eval-jobs: Parallelize
  • [*] NQPGIRXX Revert "hydra-eval-jobs -> nix eval-hydra-jobs"

Change contents

  • replacement in src/hydra-eval-jobs/hydra-eval-jobs.cc at line 470
    [2.1166][2.1166:1501]()
    auto drvPath2 = store->parseStorePath((std::string) (*job2)["drvPath"]);
    auto drv2 = store->readDerivation(drvPath2);
    job["constituents"].push_back(store->printStorePath(drvPath2));
    drv.inputDrvs[drvPath2] = {drv2.outputs.begin()->first};
    [2.1166]
    [2.1501]
    if ((*job2).find("error") != (*job2).end()) {
    if (job.find("error") == job.end()) {
    job["error"] = fmt("Errors aggregating aggregate job '%1%'.\n", jobName);
    }
    job["error"] = fmt("While handling '%1%': %2%\n", jobName2, (std::string) (*job2)["error"]);
    } else {
    auto drvPath2 = store->parseStorePath((std::string) (*job2)["drvPath"]);
    auto drv2 = store->readDerivation(drvPath2);
    job["constituents"].push_back(store->printStorePath(drvPath2));
    drv.inputDrvs[drvPath2] = {drv2.outputs.begin()->first};
    }