Add status dump facility
[?]
Jun 15, 2015, 4:20 PM
RQUAATWBGEP3YT4F555XLJYRRRGHDTEILHFORES7AM2XAOVMVJSACDependencies
- [2]
IWB3F4Z6Fail builds with previously failed steps early - [*]
24BMQDZAStart of single-process hydra-queue-runner - [*]
5AIYUMTBBasic remote building - [*]
NJJ7H64SVery basic multi-threaded queue runner - [*]
ATJ54SPXUse PostgreSQL notifications for queue events - [*]
C6HOMHZWDon't try to handle SIGINT
Change contents
- edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 204
/* Various stats. */std::atomic<int> nrQueueWakeups; - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 262
void dumpStatus(); - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 271
nrQueueWakeups = 0; - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 430
receiver dumpStatus(*conn, "dump_status"); - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 442
nrQueueWakeups++; - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 454
if (dumpStatus.get())State::dumpStatus(); - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 1111
void State::dumpStatus(){{auto builds_(builds.lock());printMsg(lvlError, format("%1% queued builds") % builds_->size());}{auto steps_(steps.lock());for (auto i = steps_->begin(); i != steps_->end(); )if (i->second.lock()) ++i; else i = steps_->erase(i);printMsg(lvlError, format("%1% pending/active build steps") % steps_->size());}{auto runnable_(runnable.lock());for (auto i = runnable_->begin(); i != runnable_->end(); )if (i->lock()) ++i; else i = runnable_->erase(i);printMsg(lvlError, format("%1% runnable build steps") % runnable_->size());}printMsg(lvlError, format("%1% times woken up to check the queue") % nrQueueWakeups);{auto machines_(machines.lock());for (auto & m : *machines_) {auto currentJobs_(m->currentJobs.lock());printMsg(lvlError, format("machine %1%: %2%/%3% active")% m->sshName % *currentJobs_ % m->maxJobs);}}} - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 1163[6.3512][8.132]
parseCmdLine(argc, argv, [&](Strings::iterator & arg, const Strings::iterator & end) {return false;});