aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/utils.scm
Commit message (Collapse)AuthorAge
* 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.
* Better format the duration in call-with-time-loggingChristopher Baines2020-12-16
|
* 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.
* Change "or" to "of" in retry-on-errorChristopher Baines2020-12-02
|
* Try to reduce errors when deleting substitute cache filesChristopher Baines2020-11-30
|
* Avoid lots of output in has-substiutes-no-cache?Christopher Baines2020-11-29
| | | | Ideally this would log at DEBUG level, or something like that.
* Avoid excessive logging when substituting derivationsChristopher Baines2020-11-29
|
* Use ensure-path in substitute-derivationChristopher Baines2020-11-26
| | | | | | This avoids the hack where you have to try and guard against building the derivation. It's only recently become available in Guix, so just use it if it's available.
* Avoid agent crashes when substitute urls aren't providedChristopher Baines2020-11-16
|
* Make call-with-time-logging write output in a thread safe wayChristopher Baines2020-11-09
|
* Handle multiple values in call-with-time-loggingChristopher Baines2020-11-06
|
* Remove some left in debugging outputChristopher Baines2020-11-02
|
* Improve missing inputs behaviourChristopher Baines2020-10-24
| | | | | | | | When a substitute is found for a direct input, but it can't be fetched, this is probably because something it referenced isn't available. Therefore, look through the references recursively and collect up the store items that aren't available locally or via a substitute. Send this list to the coordinator so that it can schedule builds.
* Use valid-path? rather than file exists for testing store itemsChristopher Baines2020-10-24
| | | | | As the file might exist, but ignored because the daemon is treating it as invalid.
* Add the ability to ignore errors when retryingChristopher Baines2020-10-24
| | | | As this will enable responding to some exceptions at a higher level.
* Make the s3 utils command configurableChristopher Baines2020-10-24
| | | | In case you want to use the absolute location of the binary.
* Display exception details prior to backtraceChristopher Baines2020-10-20
| | | | | To make sure some useful information makes it out, because (backtrace) can raise an exception.
* Show backtrace on agent exceptionsChristopher Baines2020-10-11
|
* Split the fibers utils from the main utils moduleChristopher Baines2020-10-07
| | | | | To start making it possible to use the agent, without having to load anything related to fibers (as it doesn't work on the hurd yet).
* Work around Guile not printing backtraces without failingChristopher Baines2020-09-18
| | | | | | | | | | | | For some exceptions raised in worker threads, seemingly those that come from guile-sqlite3, Guile can't print the backtrace without erroring itself [1]. Work around Guile not being helpful by just printing out the backtrace, that Guile may fail to print, after the details of the exception. At least then there's something informative in the output. 1: In procedure string->number: Wrong type argument in position 1 (expecting string): #f
* Don't patch fibers, just use the different procedure directlyChristopher Baines2020-09-16
|
* Extract call-with-sigint to the utils moduleChristopher Baines2020-09-16
|
* Make worker threads compatible with multiple return valuesChristopher Baines2020-06-20
|
* Add missing %random-state for the with-timeout syntaxChristopher Baines2020-06-19
|
* Add with-timeout to utilsChristopher Baines2020-06-19
|
* Add in some extra information about worker thread exceptionsChristopher Baines2020-06-01
|
* Improve worker exception handlingChristopher Baines2020-05-31
|
* Unlock the mutex when deq! fails unexpectedlyChristopher Baines2020-05-24
| | | | So that it can be locked again.
* Guard against deq! erroring because the queue is emptyChristopher Baines2020-05-24
| | | | I'm not sure how this happens, but it seems to, so handle it.
* Fix re-queuing jobsChristopher Baines2020-05-23
|
* Better handle failures to delete substitute cache filesChristopher Baines2020-05-23
| | | | The file can disappear if two threads try to delete it at once.
* Re-queue jobs if they failChristopher Baines2020-05-23
| | | | So that they're not forgotten about.
* Make sure to count all the jobsChristopher Baines2020-05-21
| | | | Otherwise jobs could be fetched needlessly.
* Stop using futures for running buildsChristopher Baines2020-05-21
| | | | | When you have 1 core, futures doesn't fit this use case, as it only creates one thread.
* Add some more debugging output to retry-on-errorChristopher Baines2020-05-20
|
* Print out a message when retrying succeedsChristopher Baines2020-05-20
| | | | Given a failure.
* Add more error handling in to call-with-streaming-http-requestChristopher Baines2020-05-20
| | | | | As I think there's "Resource temporarily unavailable, try again." errors coming from here...
* Sprinkle call-with-streaming-http-request with set-port-encoding!Christopher Baines2020-05-09
| | | | | Otherwise when the chunked-output-port is closed, there's issues putting characters to the port.
* Stop base64 encoding chunked requestsChristopher Baines2020-05-09
| | | | | I'm not sure why I did this... but it's slower and more complex than just not base64 encoding the data.
* Tune submitting outputs for performanceChristopher Baines2020-05-09
| | | | These settings slightly speed up sending outputs back to the coordinator.
* Add some time tracking utilitiesChristopher Baines2020-05-09
| | | | These are copied from the Guix Data Service.
* Add a hook for publishing to a S3 compatible endpointChristopher Baines2020-05-07
| | | | | | This is helpful if you don't have local storage for nars. There's nothing special about S3 beyond it's something I wanted to be able to use. I'm hoping to support other useful ways of publishing substitutes as well.
* Move retry-on-error to utilsChristopher Baines2020-05-06
| | | | So that it can be used outside of the http module.
* Remove peek that snuck inChristopher Baines2020-05-01
|
* Handle no directories to look at in has-substiutes-no-cache?Christopher Baines2020-05-01
|
* Avoid using has-substitutes? if one isn't availableChristopher Baines2020-05-01
| | | | | | | | | Because 404's for substitutes are cached for 3 hours (I think this is the current behaviour in Guix), this can mean that even though a substitute might become available, you migth have to wait up to 3 hours to be able to use it. To try and avoid this circumstance, check if a substitute is available without using the daemon, and only ask it if there should be one available.
* Retry file uploads to the coordinatorChristopher Baines2020-04-28
| | | | | Previously SIGPIPE killed the agent. This should avoid that and have the agent retry.
* Improve error handling in substitute-derivationChristopher Baines2020-04-26
|