Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Avoid starting builds if the system load is high | Christopher Baines | 2020-12-23 |
| | |||
* | Improve the guix-daemon claims a substitute is unavailable messages | Christopher Baines | 2020-12-23 |
| | | | | Include the substitute servers that should be providing the substitute. | ||
* | Better format the duration in call-with-time-logging | Christopher Baines | 2020-12-16 |
| | |||
* | Add in timeouts around fetching substitutes | Christopher Baines | 2020-12-05 |
| | | | | As I think this sometimes hangs. | ||
* | Fix agent confusion over how many builds are running | Christopher Baines | 2020-12-04 |
| | | | | | The previous code was less than ideal, this simpler and avoids less messy state. | ||
* | Change "or" to "of" in retry-on-error | Christopher Baines | 2020-12-02 |
| | |||
* | Try to reduce errors when deleting substitute cache files | Christopher Baines | 2020-11-30 |
| | |||
* | Avoid lots of output in has-substiutes-no-cache? | Christopher Baines | 2020-11-29 |
| | | | | Ideally this would log at DEBUG level, or something like that. | ||
* | Avoid excessive logging when substituting derivations | Christopher Baines | 2020-11-29 |
| | |||
* | Use ensure-path in substitute-derivation | Christopher Baines | 2020-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 provided | Christopher Baines | 2020-11-16 |
| | |||
* | Make call-with-time-logging write output in a thread safe way | Christopher Baines | 2020-11-09 |
| | |||
* | Handle multiple values in call-with-time-logging | Christopher Baines | 2020-11-06 |
| | |||
* | Remove some left in debugging output | Christopher Baines | 2020-11-02 |
| | |||
* | Improve missing inputs behaviour | Christopher Baines | 2020-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 items | Christopher Baines | 2020-10-24 |
| | | | | | As the file might exist, but ignored because the daemon is treating it as invalid. | ||
* | Add the ability to ignore errors when retrying | Christopher Baines | 2020-10-24 |
| | | | | As this will enable responding to some exceptions at a higher level. | ||
* | Make the s3 utils command configurable | Christopher Baines | 2020-10-24 |
| | | | | In case you want to use the absolute location of the binary. | ||
* | Display exception details prior to backtrace | Christopher Baines | 2020-10-20 |
| | | | | | To make sure some useful information makes it out, because (backtrace) can raise an exception. | ||
* | Show backtrace on agent exceptions | Christopher Baines | 2020-10-11 |
| | |||
* | Split the fibers utils from the main utils module | Christopher Baines | 2020-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 failing | Christopher Baines | 2020-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 directly | Christopher Baines | 2020-09-16 |
| | |||
* | Extract call-with-sigint to the utils module | Christopher Baines | 2020-09-16 |
| | |||
* | Make worker threads compatible with multiple return values | Christopher Baines | 2020-06-20 |
| | |||
* | Add missing %random-state for the with-timeout syntax | Christopher Baines | 2020-06-19 |
| | |||
* | Add with-timeout to utils | Christopher Baines | 2020-06-19 |
| | |||
* | Add in some extra information about worker thread exceptions | Christopher Baines | 2020-06-01 |
| | |||
* | Improve worker exception handling | Christopher Baines | 2020-05-31 |
| | |||
* | Unlock the mutex when deq! fails unexpectedly | Christopher Baines | 2020-05-24 |
| | | | | So that it can be locked again. | ||
* | Guard against deq! erroring because the queue is empty | Christopher Baines | 2020-05-24 |
| | | | | I'm not sure how this happens, but it seems to, so handle it. | ||
* | Fix re-queuing jobs | Christopher Baines | 2020-05-23 |
| | |||
* | Better handle failures to delete substitute cache files | Christopher Baines | 2020-05-23 |
| | | | | The file can disappear if two threads try to delete it at once. | ||
* | Re-queue jobs if they fail | Christopher Baines | 2020-05-23 |
| | | | | So that they're not forgotten about. | ||
* | Make sure to count all the jobs | Christopher Baines | 2020-05-21 |
| | | | | Otherwise jobs could be fetched needlessly. | ||
* | Stop using futures for running builds | Christopher Baines | 2020-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-error | Christopher Baines | 2020-05-20 |
| | |||
* | Print out a message when retrying succeeds | Christopher Baines | 2020-05-20 |
| | | | | Given a failure. | ||
* | Add more error handling in to call-with-streaming-http-request | Christopher Baines | 2020-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 Baines | 2020-05-09 |
| | | | | | Otherwise when the chunked-output-port is closed, there's issues putting characters to the port. | ||
* | Stop base64 encoding chunked requests | Christopher Baines | 2020-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 performance | Christopher Baines | 2020-05-09 |
| | | | | These settings slightly speed up sending outputs back to the coordinator. | ||
* | Add some time tracking utilities | Christopher Baines | 2020-05-09 |
| | | | | These are copied from the Guix Data Service. | ||
* | Add a hook for publishing to a S3 compatible endpoint | Christopher Baines | 2020-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 utils | Christopher Baines | 2020-05-06 |
| | | | | So that it can be used outside of the http module. | ||
* | Remove peek that snuck in | Christopher Baines | 2020-05-01 |
| | |||
* | Handle no directories to look at in has-substiutes-no-cache? | Christopher Baines | 2020-05-01 |
| | |||
* | Avoid using has-substitutes? if one isn't available | Christopher Baines | 2020-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 coordinator | Christopher Baines | 2020-04-28 |
| | | | | | Previously SIGPIPE killed the agent. This should avoid that and have the agent retry. | ||
* | Improve error handling in substitute-derivation | Christopher Baines | 2020-04-26 |
| |