Immediately abort builds that require an unsupported system type
[?]
Jun 15, 2015, 12:51 PM
N5O7VEEOY2IE27VCOYRBG7YCY3K7JMQEDEMRT4OQ2MUE3NWULHHQCDependencies
- [2]
2IQRXLWESupport cancelling builds - [3]
24BMQDZAStart of single-process hydra-queue-runner - [4]
RYTQLATYKeep track of failed paths in the Hydra database - [5]
YZAI5GQUImplement a database connection pool - [6]
5AIYUMTBBasic remote building - [7]
ENXUSMSVMake concurrency more robust - [8]
NJJ7H64SVery basic multi-threaded queue runner
Change contents
- edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 130
}bool supportsStep(Step::ptr step){if (systemTypes.find(step->drv.platform) == systemTypes.end()) return false;// FIXME: check featuresreturn true; - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 462
printMsg(lvlInfo, format("aborting GC'ed build %1%") % build->id);printMsg(lvlError, format("aborting GC'ed build %1%") % build->id); - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 489
continue;}/* If any step has an unsupported system type, then fail thebuild. */bool allSupported = true;for (auto & r : newRunnable) {bool supported = false;{auto machines_(machines.lock()); // FIXME: use shared_mutexfor (auto & m : *machines_)if (m->supportsStep(r)) { supported = true; break; }}if (!supported) { allSupported = false; break; }} - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 506
if (!allSupported) {printMsg(lvlError, format("aborting unsupported build %1%") % build->id);pqxx::work txn(conn);txn.parameterized("update Builds set finished = 1, busy = 0, buildStatus = $2, startTime = $3, stopTime = $3, errorMsg = $4 where id = $1")(build->id)((int) bsAborted)(time(0))("unsupported system type").exec();txn.commit(); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 799
if (!has(machine->systemTypes, step->drv.platform)) continue;// FIXME: check featuresif (!machine->supportsStep(step)) continue;