aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/agent.scm
Commit message (Collapse)AuthorAge
* Avoid some threads and locks when running on the hurdChristopher Baines2021-02-15
| | | | I've see the process hang on the hurd, and I think this might help.
* Add a log message at the end of a buildChristopher Baines2021-02-14
| | | | So it's clearer that it's ended.
* Fix use of assocChristopher Baines2021-02-12
|
* Allow agents to skip submitting build outputsChristopher Baines2021-01-16
| | | | | | | | | If the coordinator isn't going to use the outputs, because they've already been built for example, then save some time by not processing and submitting them. This will probably need to get more configurable on the coordinator side in the future.
* Start migrating derivation-inputs to derivation_inputsChristopher Baines2021-01-16
| | | | As I think underscores are more idiomatic in JSON.
* Rework the agent messaging modulesChristopher Baines2021-01-15
|
* Use methods for the agent messagingChristopher Baines2021-01-15
| | | | This will allow adding more agent messaging approaches.
* Tweak agent queue timingsChristopher Baines2021-01-12
| | | | | Wait slightly longer between starting new threads, and give more time for new jobs to arrive for running threads.
* Work on the agent thread handling some moreChristopher Baines2021-01-06
| | | | | Various changes, hopefully improvements. Inactive threads should stop promptly, and new threads should start promptly when new builds arrive.
* Give more time for substitute downloadsChristopher Baines2021-01-03
| | | | | By the agent. Turns out 10 minutes isn't long enough for some large and slow downloads.
* Fix the stdin based status display when running under the shepherdChristopher Baines2021-01-03
| | | | | The current input port is #<input: file 0>, which gives eof when read from, so detect this and stop trying to read from it.
* Add debugging code for the agent status outputChristopher Baines2021-01-03
| | | | As this doesn't seem to be working properly when running under the shepherd.
* Ensure the agent fetches builds if it doesn't have anyChristopher Baines2021-01-02
|
* Make sure to have the agent try fetching buildsChristopher Baines2021-01-02
| | | | Even if there are no worker threads running.
* Tune agent retryingChristopher Baines2021-01-01
| | | | So that the agent spends less time waiting.
* Add missing suffix to an agent log lineChristopher Baines2020-12-31
|
* Add more information to the agent info outputChristopher Baines2020-12-31
|
* Display useful information about agent stateChristopher Baines2020-12-31
| | | | When the agent receives input or SIGUSR1.
* Have the agent fetch builds based on the current number of threadsChristopher Baines2020-12-31
| | | | | | This means that if the agent is only processing 2 builds at a time, it'll only fetch up to two builds, rather than whatever maximum it would fetch. This avoids fetching builds unnecessarily.
* Rate limit the agent starting threads to process buildsChristopher Baines2020-12-31
| | | | | | | | | | Allow rate limiting new worker threads starting in the agent. Currently if the running jobs is limited by system load, lots of jobs start, the load goes up, then the jobs gradually finish, and once the load decreases, lots of jobs start again, and the cycle repeats. Rate limiting the starting of new threads might help to soften the jobs all starting at once.
* Avoid fetching builds when they won't start immediatelyChristopher Baines2020-12-30
|
* Only run one build when the load is highChristopher Baines2020-12-30
| | | | | This should avoid behaviour that I've observed where sometimes no builds are running, because the load is high.
* Further tweak exception handling around has-substitutes-no-cache?Christopher Baines2020-12-24
|
* Improve some loggingChristopher Baines2020-12-24
| | | | I think exceptions are happening, but the existing logging isn't working.
* Include the current-load in the holding build start messageChristopher Baines2020-12-23
|
* Fix issue with the change of the load average periodChristopher Baines2020-12-23
|
* Switch to using the 1 minute load averageChristopher Baines2020-12-23
| | | | So that it's more responsive.
* Avoid starting builds if the system load is highChristopher Baines2020-12-23
|
* Improve the guix-daemon claims a substitute is unavailable messagesChristopher Baines2020-12-23
| | | | Include the substitute servers that should be providing the substitute.
* Implement build cancelationChristopher Baines2020-12-16
|
* Guard against a weird state for missing build inputsChristopher Baines2020-12-15
| | | | | | Where there are missing files, but find-missing-substitutes-for-output doesn't return anything. I think this can happen when the substitutes should be available, but there was an error when fetching them.
* Add missing lgr argumentChristopher Baines2020-12-10
|
* Start using Prometheus metrics with the agentChristopher Baines2020-12-07
| | | | | Rather than having the agent run a webserver, use the textfile collector from the node exporter.
* Avoid setting timeout options for the daemon for the buildChristopher Baines2020-12-06
| | | | | The timeouts are useful when fetching substitutes, but I want to keep the previous behaviour of using the values set in the daemon for the build itself.
* Print out when builds fail due to timeoutsChristopher Baines2020-12-06
|
* Add some randomisation to substitute delaysChristopher Baines2020-12-05
|
* Add in timeouts around fetching substitutesChristopher Baines2020-12-05
| | | | As I think this sometimes hangs.
* Fix agent confusion over how many builds are runningChristopher Baines2020-12-04
| | | | | The previous code was less than ideal, this simpler and avoids less messy state.
* Replace WARNING with WARNChristopher Baines2020-11-30
| | | | As it's shorter, and this keeps the logging neat.
* Add some useful logging when the agent startsChristopher Baines2020-11-30
|
* Improve logging of new buildsChristopher Baines2020-11-30
|
* Hide logging from garbage collectionChristopher Baines2020-11-30
|
* Improve the logging from the agent -> coordinator communicationChristopher Baines2020-11-30
|
* Improve handling of build failuresChristopher Baines2020-11-30
|
* Improve agent loggingChristopher Baines2020-11-30
| | | | | Use a logger, and set out different levels. Also try and neaten up the formatting.
* Avoid output from has-substitutes?Christopher Baines2020-11-29
|
* Avoid lots of output when fetching substitutes for inputsChristopher Baines2020-11-29
|
* Wait if no new builds are availableChristopher Baines2020-11-29
|
* Fix the post-build-failure procedure to handle agent errorsChristopher Baines2020-11-29
| | | | | Spot when the coordinator says the build is already processed, and don't raise an exception.
* Tune agent sleepingChristopher Baines2020-11-29
| | | | I don't think there's a need for the agent to sleep much.