aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Improve agent tags messageChristopher Baines2021-01-31
|
* Support listing and canceling builds by derivation systemChristopher Baines2021-01-31
|
* Exclude allocated builds from setup failuresChristopher Baines2021-01-26
| | | | As I think this is causing the allocator to crash.
* Try to simplify part of the basic allocatorChristopher Baines2021-01-26
| | | | As there has been exceptions in this area, the required build priority is #f.
* Fix a crash when rendering the client builds responseChristopher Baines2021-01-26
|
* Don't use with-exception-handler with (backtrace)Christopher Baines2021-01-22
| | | | | | | | | | | With with-exception-handler being called with #:unwind? #f (implicitly). This breaks Guile internals used by (backtrace) [1], meaning you get a different exception/backtrace when Guile itself breaks. This should avoid the "string->number: Wrong type argument in position 1 (expecting string): #f" exception I've been haunted by for the last year. 1: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=46009
* Rework client error handlingChristopher Baines2021-01-19
| | | | To see if that produces better logging.
* Fix up a load of the tag related codeChristopher Baines2021-01-17
| | | | | Turns out vector-fold and vector-map don't work like I'd expected them to, like fold and map for vectors.
* Sure up handling of exceptions within Guile (backtrace)Christopher Baines2021-01-17
|
* Fix bug in allocators from alist to vector switch for tagsChristopher Baines2021-01-17
|
* Stop treating collections of tags as alistsChristopher Baines2021-01-17
| | | | | | | This translates poorly to JSON, as you can't have multiple values for one name in a JSON object. Is also is risky in terms of assoc-ref being used, and not considering more than one key. Using a vector of pairs should help in both situations.
* Implement agent/build tag matchingChristopher Baines2021-01-17
| | | | | | | | | If the agent and build tags have overlapping keys, compare the tag value, and only match the build to the agent if the value matches. There's a potential issue with some of the code here in that it doesn't cope well with tags with matching keys but differing values, but this is just a first implementation.
* Allow changing agent tags through the command lineChristopher Baines2021-01-17
|
* Add client code for changing agent tagsChristopher Baines2021-01-17
|
* Include agent tags in the details responseChristopher Baines2021-01-17
|
* Add tags for agentsChristopher Baines2021-01-17
| | | | | This will allow doing things like restricting builds by matching up there tags to the tags of the agents.
* Exclude allocated builds from the basic allocatorChristopher Baines2021-01-17
|
* Expose allocated builds for each agentChristopher Baines2021-01-17
|
* Add missing thunkChristopher Baines2021-01-16
|
* Tweak datastore-list-unbuilt-derivation-outputsChristopher Baines2021-01-16
| | | | So it works with the code in handle-build-result.
* Tweak agent messaging error handlingChristopher Baines2021-01-16
|
* Don't error when builds don't have a created at timeChristopher Baines2021-01-16
|
* 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.
* Tell agents when to submit built outputsChristopher Baines2021-01-16
| | | | This is often unnecessary if the outputs have already been built.
* Add datastore-list-unbuilt-derivation-outputsChristopher Baines2021-01-16
|
* Allow nesting transactions in codeChristopher Baines2021-01-16
| | | | | You can't actually nest transactions, so just track if one is in progress, and don't attempt to start a transaction if that's the case.
* Use a readonly transaction for datastore-fetch-build-to-allocateChristopher Baines2021-01-16
| | | | As it doesn't write to the database.
* Fix some sqlite datastore slot referencesChristopher Baines2021-01-16
|
* Move the build result storing logic in to the coordinator moduleChristopher Baines2021-01-16
| | | | | And out of the datastore. This means that datastore code doesn't have too much logic in it.
* Move build allocation complexity out of the datastoreChristopher Baines2021-01-16
| | | | | And in to the coordinator module. This will make adding more datastore's easier.
* Add local agent messagingChristopher Baines2021-01-16
| | | | | This is untested, but might be quite cool for running a single agent instance of the build coordinator, all in one process.
* Move triggering allocations out of the http serverChristopher Baines2021-01-15
| | | | As this code should be in the coordinator.
* 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.
* Enable matching tags by just the keyChristopher Baines2021-01-03
|
* Have build list cope with multiple pagesChristopher Baines2021-01-03
|
* 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.
* Stop agent threads if there's no work within some time periodChristopher Baines2021-01-02
| | | | So that the number of threads can decrease without new jobs arriving.
* Don't start new agent threads if there are no jobsChristopher Baines2021-01-02
|
* Only use lookup-narinfos on one thread at a timeChristopher Baines2021-01-02
| | | | In the agent, as I doubt the new connection caching in Guix is thread safe.
* Tune agent retryingChristopher Baines2021-01-01
| | | | So that the agent spends less time waiting.
* Work around caching broken connections in GuixChristopher Baines2021-01-01
| | | | Introduced in be5a75ebb5988b87b2392e2113f6590f353dd6cd.
* Add missing suffix to an agent log lineChristopher Baines2020-12-31
|