aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/utils.scm
Commit message (Collapse)AuthorAge
* Use with-store/non-blocking from guixChristopher Baines2024-05-14
| | | | | As it opens a non-blocking connection, rather than doing a blocking handshake then making the socket non-blocking.
* Remove with-timeoutChristopher Baines2024-05-10
| | | | As it's now unused.
* Avoid with-store/non-blockingChristopher Baines2024-05-10
| | | | | As I'm seeing exceptions around here, but I think the syntax rule may be hiding exactly where.
* Have the port monitoring fiber use non blocking socketsChristopher Baines2024-04-28
|
* Don't use open-connection-for-uri from GuixChristopher Baines2024-04-28
| | | | As it's timeout approach doesn't work with suspendable ports.
* Use the new process metrics exporterChristopher Baines2024-04-17
|
* Fix the sleep-impl argument to retry-on-errorChristopher Baines2024-03-16
|
* Add a definition of retry-on-error which uses the fibers sleepChristopher Baines2024-03-15
|
* Remove the core-guile-sleep variableChristopher Baines2024-03-15
| | | | As this is unnecessary.
* Actually use non-blocking ports for network requestsChristopher Baines2024-03-02
| | | | In most places at least.
* Change retry-on-error to take #:ignore and #:no-retryChristopher Baines2024-01-12
| | | | And change #:ignore to better reflect ignoring the exception.
* Improve thread pool and work queue backtracesChristopher Baines2023-12-09
| | | | To try and get more information about "conversion to port encoding failed".
* Guard against exceptions in the thread poolChristopher Baines2023-12-06
|
* Don't check too-many-threads? in the thread pool for each jobChristopher Baines2023-12-06
| | | | | As this is excessive. Instead just check this when there are no jobs available.
* Move a hash-set! in the thread poolChristopher Baines2023-12-06
| | | | To avoid unlocking and locking the mutex.
* Re-fetch running jobs in the thread poolChristopher Baines2023-12-06
| | | | As the information might be stale when wait-condition-variable returns.
* Don't pass time to wait-condition-variableChristopher Baines2023-12-02
| | | | | | | | | | My intent here was to avoid threads waiting indefinitely for a signal. Unfortunately, it seems that specifying a timeout can result in wait-condition-variable entering an endless loop internally (#67194). Hopefully avoid this by not passing a time to wait-condition-variable. Maybe some new threads/fibers will need adding that periodically signal these condition variables to replicate the timeout behaviour.
* Remove set-store-connection-timeoutChristopher Baines2023-11-20
| | | | As non blocking connections are being used now.
* Avoid readlink syscalls when reading derivationsChristopher Baines2023-11-17
| | | | | | | | | strace -c reports over 10,000 readlink syscalls when reading the derivation for the hello package. By just setting the %file-port-name-canonicalization fluid, this drops to less than 10. I'm not sure if this actually improves performance, but doing less is surely better.
* Call wait-condition-variable with longer timeoutsChristopher Baines2023-11-15
| | | | | | The hook processing threads seem to be getting stuck in wait-condition-variable where the timeout is in the past. Maybe setting a longer timeout will help avoid this.
* Remove some caching from reading derivationsChristopher Baines2023-11-11
| | | | As I'm not sure this is helpful.
* Don't output the whole log for substituting derivationsChristopher Baines2023-08-31
| | | | Just the last bit, as it could be very long.
* Fix some logging messagesChristopher Baines2023-08-29
|
* Pass the store in to substitute-derivationChristopher Baines2023-08-20
| | | | To avoid an additional store connection.
* Include metric for file descriptorsChristopher Baines2023-08-20
|
* Simplify substitute-derivationChristopher Baines2023-08-10
| | | | Assume ensure-path is available.
* Name more threadsChristopher Baines2023-08-09
| | | | To help with debugging.
* Don't use threads for substituting derivationsChristopher Baines2023-08-09
| | | | Instead use non-blocking store connections like Cuirass does.
* Fix read-derivation getting the filenameChristopher Baines2023-08-03
|
* Keep less derivation files open when reading derivationsChristopher Baines2023-08-03
| | | | | This probably isn't the main problem with having too many open files, but it might help avoid bursts of open files.
* Make client requests mostly suspendableChristopher Baines2023-07-24
|
* Remove unused make-base64-output-portChristopher Baines2023-05-20
|
* Improve work queue and thread pool exception loggingChristopher Baines2023-05-17
|
* Add more information to job raised exception logsChristopher Baines2023-05-14
|
* Add #:streaming? to call-with-streaming-http-requestChristopher Baines2023-05-11
|
* Add missing argument to port timeout errorsChristopher Baines2023-05-11
|
* Correct some indentationChristopher Baines2023-05-10
|
* Separate read and write timeout exceptionsChristopher Baines2023-05-09
| | | | So it's clearer what has occurred.
* Remove make-chunked-output-port* as it's now unusedChristopher Baines2023-05-08
|
* Force sending the request in call-with-streaming-http-requestChristopher Baines2023-05-08
|
* Stop using chunked transfers for file uploadsChristopher Baines2023-05-08
| | | | | As the amount of data to upload is known, this is unnecessary complexity and overhead.
* Add utility to get system uptimeChristopher Baines2023-05-05
|
* Remove the gbc prefix from the thread namesChristopher Baines2023-05-02
| | | | As this shouldn't be needed to help identify them.
* Neaten up the make-chunked-output-port* implementationChristopher Baines2023-04-30
| | | | | As the comment says, this needs a bit more looking at to determine what (if any) changes should be suggested for Guile.
* Stop monitoring uploads through the chunked output portChristopher Baines2023-04-30
| | | | Use the dump-port* progress reporter instead.
* Try to instrument ports/file descriptorsChristopher Baines2023-04-27
| | | | | | I'm seeing "too many open file" errors, and while I'm not sure if port-for-each is directly connected, it sounds like it might be worth instrumenting.
* Remove chunked input codeChristopher Baines2023-04-25
| | | | This is now upstream in Guile.
* Remove some thread pool loggingChristopher Baines2023-04-22
| | | | As I'm not currently debugging this.
* Use set-car! when sorting the prioritised work queueChristopher Baines2023-04-20
| | | | | As stable-sort! probably doesn't guarantee to alter the list as I was previously expecting.
* Attempt to make with-port-timeouts handle the GC restarting pollChristopher Baines2023-04-17
| | | | | | From what I'm seeing in strace, I think the GC is breaking the timeout behaviour by restarting the syscall, these changes should work around that behaviour.