aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/agent-messaging
Commit message (Collapse)AuthorAge
* Increase the number of times to retry agent requestsChristopher Baines2020-04-29
|
* Check that the agent uuid is a stringChristopher Baines2020-04-28
| | | | It can be #f if no agent is allocated the build.
* Retry file uploads to the coordinatorChristopher Baines2020-04-28
| | | | | Previously SIGPIPE killed the agent. This should avoid that and have the agent retry.
* Rework the way metrics are handledChristopher Baines2020-04-28
| | | | | Start writing a proper Prometheus client, hopefully this code can be extracted at some point.
* Retry requests a few times if they errorChristopher Baines2020-04-27
| | | | This should make agent <-> coordinator communication more failure tolerant.
* Add a function to retry a thunk a number of timesChristopher Baines2020-04-27
|
* Add more error handling to coordinator-http-requestChristopher Baines2020-04-27
|
* Refactor some of the HTTP requestsChristopher Baines2020-04-27
| | | | To reduce the code duplication.
* Update the comment regarding processing chunked requestsChristopher Baines2020-04-27
| | | | The reasoning changed with 9acc42cfd1d081ca1e8d8aa41fe0eb20303e5df3.
* Revert "Revert "Read chunked request bodies in different threads to avoid ↵Christopher Baines2020-04-27
| | | | | | | | | blocking"" Fibers gets upset when trying to upload files: Attempt to suspend fiber within continuation barrier, so try doing this in a thread. This reverts commit 63b0fa9c37a5cd540bcbb975598baa8ef1a3831b.
* Revert "Switch to the non-fibers web server"Christopher Baines2020-04-27
| | | | | | The non-fibers one processes requests sequentially, which just won't do. This reverts commit 2d2ae5b6b01081f35ad2fc25affdef8c876b48e6.
* Revert "Read chunked request bodies in different threads to avoid blocking"Christopher Baines2020-04-27
| | | | | | | This didn't help, as I think the web server just processes requests sequentially. Hopefully once that's resolved, this won't be necessary. This reverts commit 48ed0eead59119c269993dbfa2c9ca8302b52d3d.
* Ensure that successful builds have the outputs and log fileChristopher Baines2020-04-26
| | | | Present on the coordinator.
* Read chunked request bodies in different threads to avoid blockingChristopher Baines2020-04-26
| | | | | Not sure if this'll work, but hopefully offloading reading the chunked requests to other threads will avoid blocking.
* Try to fix handling of chuncked requestsChristopher Baines2020-04-26
| | | | | | | | | | | | | From looking at what curl does, it seems that the last the requests end in "0\r\n\r\n". The requests being sent before just had "0\r\n" at the end. This worked with the server, because that wasn't expecting the final "\r\n", and it would crash if it was included, as it would be read as the start of the next request. To work around this, adjust both the sending and receiving of the requests. Send the "\r\n" after the chuncked data when making requests, and use a patched version of make-chunked-input-port that requests two more bytes after it's finished reading the last chunk.
* Expose metricsChristopher Baines2020-04-26
|
* Support sending and storing log files for buildsChristopher Baines2020-04-25
|
* Extract out call-with-streaming-http-requestChristopher Baines2020-04-25
|
* Add a hook to handle missing inputsChristopher Baines2020-04-17
| | | | | | | That submits new build jobs to build these missing inputs if appropriate. This means that you can tell the coordinator to build something, and it will automatically attempt to build the dependencies if they're missing.
* Switch the build-allocator thread to not use a channelChristopher Baines2020-04-17
| | | | | The put-message operation blocks, which doesn't work for triggering the allocation process.
* Switch to the fibers backend for the webserverChristopher Baines2020-04-17
| | | | This might help with using fibers for other things.
* Implement a couple of basic hooksChristopher Baines2020-04-16
| | | | This allows configurable code to be executed when builds succeed or fail.
* Improve build allocationChristopher Baines2020-04-13
| | | | | | | | | Move some of the code around, and trigger allocating builds via a thread if an agent fails to setup for a build and when a build succeeds/fails. This is important, as some setup failures can be handled by the build allocator, for example a build finishing may unblock other builds waiting for outputs it generates.
* Add missing importChristopher Baines2020-04-13
|
* Fix printing out requests to the coordinatorChristopher Baines2020-04-13
|
* Support reporting setup failures to the coordinatorChristopher Baines2020-04-13
|
* Add support for sending/receiving build resultsChristopher Baines2020-04-13
|
* Start storing outputs in a proper directoryChristopher Baines2020-04-13
|
* Add initial support for sending/storing build outputsChristopher Baines2020-04-13
|
* Hack support for chuncked request bodies in to GuileChristopher Baines2020-04-13
| | | | | | | | There's some support for using the chunked transfer encoding, but only for response bodies. Rather than returning a bytevector, return a port so that the data can be sent to a file, rather than having to store it all in memory first.
* Switch to the non-fibers web serverChristopher Baines2020-04-13
| | | | | I'm not sure how to get requests with chunked bodies working with the fibers server.
* Respond to agent requests with the agent detailsChristopher Baines2020-04-11
| | | | | This makes it possible for an agent to find out what builds it's been allocated, if any.
* Support agents fetching buildsChristopher Baines2020-04-10
|
* Implement more of an agent sending a status updateChristopher Baines2020-04-10
|
* Implement more of the /agent/UUID GET behaviourChristopher Baines2020-04-10
|
* Start implementing the HTTP agent messaging featuresChristopher Baines2020-04-10