aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Show backtraces for fetch-file exceptionsChristopher Baines2023-09-12
|
* Make sure to use streaming http requests everywhereChristopher Baines2023-09-12
| | | | As this avoids blocking.
* Add some more loggingChristopher Baines2023-09-12
|
* Enforce an ordering in database-select-recent-changesChristopher Baines2023-09-12
|
* Remove some unused importsChristopher Baines2023-09-12
|
* Use fibers in fast-download-narsChristopher Baines2023-09-12
| | | | As it's within a fibers thread now.
* Use recent changes to trigger nar mirroring and removalChristopher Baines2023-09-12
| | | | | As this should be more efficient than repeatedly looking through all the nars in the database.
* Use fibers for the recent changes removal threadChristopher Baines2023-09-12
|
* Use fibers timeouts for all http requestsChristopher Baines2023-09-12
|
* Add new fibers timeout utilsChristopher Baines2023-09-12
| | | | | This depends on a tweaked version of (fibers io-wakeup), which calls select of the file descriptors, rather than the ports.
* Remove set-socket-timeoutChristopher Baines2023-09-12
| | | | As I don't think it's useful on non blocking sockets.
* Stop using with-port-timeoutsChristopher Baines2023-09-12
| | | | As this is incompatible with fibers.
* Move most maintenance activity to fibersChristopher Baines2023-09-12
| | | | | On a single separate thread. This will allow for spawning fibers for various maintenance actions.
* Switch to cooperative schedulingChristopher Baines2023-09-12
|
* Correct the metric problems from introducing fold-nar-filesChristopher Baines2023-09-12
| | | | The metrics are now updated at the end.
* Name an unnamed threadChristopher Baines2023-09-08
|
* Name some worker threadsChristopher Baines2023-09-08
|
* Avoid fast-download-nars from calling get-nar-filesChristopher Baines2023-09-08
| | | | As this is expensive when there are a large number of nars.
* Add fold-nar-files and use it in a few placesChristopher Baines2023-09-08
| | | | As this should use less memory than get-nar-files.
* Add datastore-fold-all-narinfo-filesChristopher Baines2023-09-07
|
* Set thread names for worker threadsChristopher Baines2023-09-07
|
* Include metrics for ports and file descriptorsChristopher Baines2023-09-07
|
* Use call-with-duration-metric helperChristopher Baines2023-09-07
|
* Throw some connection caching in for info requestsChristopher Baines2023-07-27
| | | | To avoid opening a new connection for each request.
* Add better exception handling and retrying when mirroring narsChristopher Baines2023-07-21
|
* Try to keep on top of mirroring narsChristopher Baines2023-07-21
| | | | Only sleep when there were no changes or exceptions.
* Drop the number of fibers threadsChristopher Baines2023-07-12
|
* Drop the socket timeout when fetching changesChristopher Baines2023-07-12
| | | | As I'm still seeing this hang.
* Log just before querying for recent changesChristopher Baines2023-07-08
|
* Cleanup temp files on exceptions when generating cached compressionsChristopher Baines2023-07-08
|
* Name some more threadsChristopher Baines2023-07-08
|
* Set low level timeouts for HTTP requestsChristopher Baines2023-06-30
| | | | To try to avoid things getting stuck.
* Add some more network connection timeout helpersChristopher Baines2023-06-30
|
* Show progress for downloading the database dumpChristopher Baines2023-06-30
|
* Update guix-dev.scmChristopher Baines2023-06-30
| | | | For the lack of guile-fibers-next.
* Refactor, making some code less nestedChristopher Baines2023-06-30
|
* Ensure that nar requests are for the right filenameChristopher Baines2023-05-31
| | | | Rather than just checking the hash.
* Stop mmap'ing the databaseChristopher Baines2023-05-30
| | | | | I don't think I fully understand the implications of this yet, in particular how this affects system memory usage.
* Add loop detection for nar requestsChristopher Baines2023-05-29
| | | | | | | | | | | | | | | Because the nar-herder is meant for use with a reverse proxy (like NGinx) which might reverse proxy the nar response from another server (also running the nar-herder), this might result in a loop of requests where say server A gets a request from a client, reverse proxies to server B, which then reverse proxies back to server A forming a loop. To detect and stop this, this commit enables the nar-herder to check the Via header, and refuse requests that it has already been involved in. This behaviour requires that the reverse proxy adds the machine hostname as an entry to the Via header when it reverse proxies the request.
* Make more logging output from the database module atomicChristopher Baines2023-05-29
| | | | So that it's easier to read.
* Insert cached narinfo files in a transactionChristopher Baines2023-05-29
| | | | As this handles the database being busy.
* Improve HEAD request handlingChristopher Baines2023-05-22
| | | | | | The Guile Fibers web server already just omits response bodies for HEAD requests, so just change the controller to handle HEAD requests like GET requests in all cases.
* Avoid generating cached compressions of already compressed filesChristopher Baines2023-05-22
| | | | | | This should probably be configurable, but just hardcoding compressed-file? from (guix utils) seems like a good step forward for now.
* Better handle invalid GET /nar/ requestsChristopher Baines2023-05-22
|
* Better handle /file requests where the nar is known but unavailableChristopher Baines2023-05-21
|
* Fix misleading log messageChristopher Baines2023-05-21
|
* Include the response code in some errorsChristopher Baines2023-05-21
|
* Name the cached compression work queueChristopher Baines2023-05-21
|
* Add exception handling to the recent change removal threadChristopher Baines2023-05-20
|
* Remove recent changes in transactionChristopher Baines2023-05-20
| | | | To handle the database being busy.