Make the queue monitor more robust, and better debug output
[?]
Jun 15, 2015, 2:54 PM
GKZN4UV75GV7GEHQGBM2O6UHN6CVSHA7BMASCUQSDIDYVUKKZL7ACDependencies
- [2]
IWB3F4Z6Fail builds with previously failed steps early - [3]
ATJ54SPXUse PostgreSQL notifications for queue events - [4]
5AIYUMTBBasic remote building - [5]
T2EIYJNGOn SIGINT, shut down the builder threads - [6]
ENXUSMSVMake concurrency more robust - [7]
RYTQLATYKeep track of failed paths in the Hydra database - [8]
C6HOMHZWDon't try to handle SIGINT - [9]
2IQRXLWESupport cancelling builds - [10]
62MQPRXCPass null values to libpqxx properly - [11]
24BMQDZAStart of single-process hydra-queue-runner - [12]
22LDPAIPCheck non-runnable steps for unsupported system type - [13]
YZAI5GQUImplement a database connection pool - [14]
NJJ7H64SVery basic multi-threaded queue runner - [15]
FQQRJUO4Mark builds as busy - [16]
UQQ4IL55Add a error type for "unsupported system type"
Change contents
- replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 79
printMsg(lvlError, format("destroying build %1%") % id);printMsg(lvlDebug, format("destroying build %1%") % id); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 113
printMsg(lvlError, format("destroying step %1%") % drvPath);printMsg(lvlDebug, format("destroying step %1%") % drvPath); - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 226
void queueMonitorLoop(); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 275
printMsg(lvlError, "clearing active builds / build steps...");printMsg(lvlInfo, "clearing active builds / build steps..."); - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 387
{while (true) {try {queueMonitorLoop();} catch (std::exception & e) {printMsg(lvlError, format("queue monitor: %1%") % e.what());sleep(10); // probably a DB problem, so don't retry right away}}}void State::queueMonitorLoop() - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 435
printMsg(lvlError, "got notification: new builds added to the queue");printMsg(lvlTalkative, "got notification: new builds added to the queue"); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 437
printMsg(lvlError, "got notification: builds restarted");printMsg(lvlTalkative, "got notification: builds restarted"); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 441
printMsg(lvlError, "got notification: builds cancelled");printMsg(lvlTalkative, "got notification: builds cancelled"); - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 445
printMsg(lvlError, "queue monitor exits"); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 450
printMsg(lvlError, format("checking the queue for builds > %1%...") % lastBuildId);printMsg(lvlInfo, format("checking the queue for builds > %1%...") % lastBuildId); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 483
printMsg(lvlInfo, format("loading build %1% (%2%)") % build->id % build->fullJobName);printMsg(lvlTalkative, format("loading build %1% (%2%)") % build->id % build->fullJobName); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 508
printMsg(lvlInfo, format("cached build %1%") % build->id);printMsg(lvlInfo, format("marking build %1% as cached successful") % build->id); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 540
printMsg(lvlError, format("failing build %1% due to previous failure") % build->id);printMsg(lvlError, format("marking build %1% as cached failure") % build->id); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 574
printMsg(lvlInfo, format("added build %1% (top-level step %2%, %3% new steps, %4% new runnable steps)")printMsg(lvlChatty, format("added build %1% (top-level step %2%, %3% new steps, %4% new runnable steps)") - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 630
printMsg(lvlInfo, format("considering derivation ‘%1%’") % drvPath);printMsg(lvlDebug, format("considering derivation ‘%1%’") % drvPath); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 655
printMsg(lvlInfo, format("creating build step ‘%1%’") % drvPath);printMsg(lvlDebug, format("creating build step ‘%1%’") % drvPath); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 687
printMsg(lvlInfo, format("destroying build step ‘%1%’") % step->drvPath);printMsg(lvlDebug, format("destroying build step ‘%1%’") % step->drvPath); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 772
printMsg(lvlInfo, format("step ‘%1%’ is now runnable") % step->drvPath);printMsg(lvlChatty, format("step ‘%1%’ is now runnable") % step->drvPath); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 791
printMsg(lvlError, "dispatcher woken up");printMsg(lvlDebug, "dispatcher woken up"); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 795
printMsg(lvlError, format("%1% runnable builds") % runnable_->size());printMsg(lvlDebug, format("%1% runnable builds") % runnable_->size()); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 811
printMsg(lvlError, format("cannot execute step ‘%1%’ right now") % step->drvPath);printMsg(lvlDebug, format("cannot execute step ‘%1%’ right now") % step->drvPath); - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 816
printMsg(lvlInfo, format("WOOHOO: starting step ‘%1%’ on machine ‘%2%’")% step->drvPath % reservation->machine->sshName); - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 877
printMsg(lvlError, "builder exits"); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 912
printMsg(lvlInfo, format("performing build step ‘%1%’ (needed by %2% builds)") % step->drvPath % dependents.size());printMsg(lvlInfo, format("performing step ‘%1%’ on ‘%2%’ (needed by %3% builds)")% step->drvPath % machine->sshName % dependents.size()); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 947
abort();abort(); // FIXME - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 1055
printMsg(lvlError, format("marking build %1% as succeeded") % build->id);printMsg(lvlInfo, format("marking build %1% as succeeded") % build->id); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 1110
printMsg(lvlError, "exiting...");printMsg(lvlError, format("psql connections = %1%") % dbPool.count());//printMsg(lvlInfo, "exiting...");//printMsg(lvlInfo, format("psql connections = %1%") % dbPool.count());