guix-play/guix
Ludovic Courtès d921c742b7
cache: Avoid cache cleanup storms from concurrent processes.
Reported by Christopher Baines <guix@cbaines.net>.

* guix/cache.scm (maybe-remove-expired-cache-entries): Define
‘expiry-port’; create it with ‘lock-file’.  Change ‘last-expiry-date’
accordingly.  Write timestamp straight to ‘expiry-port’.
* tests/cache.scm ("maybe-remove-expired-cache-entries, cleanup needed
but lock taken"): New test.

Change-Id: I22441d9d2c4a339d3d3878de131864db5a0ae826
2024-08-21 00:52:39 +02:00
..
build syscalls: Add ‘mode’ parameter to ‘lock-file’. 2024-08-21 00:52:38 +02:00
build-system build-system/meson: #:test-options can be a gexp. 2024-07-26 19:21:33 +02:00
import import: pypi: make-pypi-sexp: Detect 'null description. 2024-08-17 13:23:57 +02:00
platforms guix: Add xtensa-ath9k-elf platform. 2024-04-17 12:13:02 +02:00
scripts scripts: hash: Handle repository with different VCS folders. 2024-07-23 16:27:27 +02:00
store deduplication: Detect holes and create sparse files. 2024-05-25 16:44:42 +02:00
tests
android-repo-download.scm
avahi.scm
base16.scm
base32.scm
base64.scm
build-system.scm
bzr-download.scm download: Honor ‘GUIX_DOWNLOAD_METHODS’ environment variable. 2024-03-09 18:55:50 +01:00
cache.scm cache: Avoid cache cleanup storms from concurrent processes. 2024-08-21 00:52:39 +02:00
channels.scm guix: channels: Enable specifiying available builtin builders. 2024-07-18 11:18:29 +01:00
ci.scm ci: Catch error for unreachable channel with substitutes. 2024-07-23 16:24:38 +02:00
colors.scm
combinators.scm
config.scm.in
cpio.scm
cpu.scm cpu: Enable tuning for i686-linux. 2024-03-07 13:04:27 +02:00
cve.scm
cvs-download.scm download: Honor ‘GUIX_DOWNLOAD_METHODS’ environment variable. 2024-03-09 18:55:50 +01:00
d3.v3.js
deprecation.scm deprecation: Fix docstring typo. 2023-12-22 17:47:15 +01:00
derivations.scm Autoload (gcrypt hash). 2024-04-15 22:36:42 +02:00
describe.scm describe: Try harder to find the ‘guix pull’ profile. 2024-03-19 17:02:14 +01:00
diagnostics.scm
discovery.scm Autoload (guix build syscalls). 2024-04-15 22:36:42 +02:00
docker.scm guix: docker: Build layered images. 2024-01-08 21:04:44 +03:00
download.scm guix: Delay loading of (gnutls). 2024-04-15 22:36:42 +02:00
elf.scm
ftp-client.scm
gexp.scm gexp: Add #:guile parameter to ‘gexp->file’ and ‘scheme-file’. 2024-04-08 00:05:48 +02:00
git-authenticate.scm
git-download.scm git-download: Reduce builder duplication. 2024-06-11 11:33:43 +01:00
git.scm git: Remove untracked files from cached checkouts. 2024-07-18 17:31:19 +02:00
glob.scm
gnu-maintenance.scm
gnupg.scm
grafts.scm grafts: Use the right locale package. 2023-12-03 23:55:08 +01:00
graph.js
graph.scm
hash.scm scripts: hash: Handle repository with different VCS folders. 2024-07-23 16:27:27 +02:00
hg-download.scm hg-download: Pass strings to ‘hg-fetch’. 2024-06-12 09:45:44 +02:00
http-client.scm
i18n.scm
inferior.scm inferior: Use the host built-in-builders with inferior. 2024-07-18 11:18:29 +01:00
ipfs.scm
least-authority.scm least-authority: Add support for changing UIDs/GIDs before exec. 2023-12-22 00:31:41 +01:00
licenses.scm
lint.scm Revert "guix: Run check-synopsis-style with other local checks." 2024-06-26 15:08:51 +01:00
man-db.scm
memoization.scm
modules.scm modules: ‘file-name->module-name’ strips leading “./”. 2024-07-18 17:31:19 +02:00
monad-repl.scm monad-repl: Add REPL commands to inspect package arguments. 2023-12-04 22:26:38 +01:00
monads.scm
nar.scm Autoload (guix build syscalls). 2024-04-15 22:36:42 +02:00
narinfo.scm
openpgp.scm
packages.scm graft: Perform grafts with guile-final. 2024-07-23 18:09:35 +03:00
pki.scm
platform.scm guix: platform: Add platform-rust-target. 2023-12-11 13:50:48 +02:00
profiles.scm gnu: linux-libre: Enable Zstd compression of kernel modules. 2024-05-29 22:01:23 -04:00
profiling.scm
progress.scm tests: Import (guix build syscalls) when (guix build store-copy) is used. 2023-11-25 16:29:25 +01:00
quirks.scm
read-print.scm guix: import: Optionally import necessary yanked crates. 2024-01-09 09:38:38 +02:00
records.scm records: Do not inline the constructor. 2024-05-04 19:14:24 +02:00
remote.scm
repl.scm
rpm.scm
scripts.scm Autoload (guix build syscalls). 2024-04-15 22:36:42 +02:00
search-paths.scm
self.scm self: Remove reference to source. 2024-07-02 10:19:52 +02:00
serialization.scm
sets.scm
ssh.scm ssh: ‘open-ssh-session’ displays the port number upon error. 2024-04-04 15:48:47 +02:00
status.scm
store.scm guix: store: Enable specifying the builtin builders. 2024-07-18 11:18:25 +01:00
substitutes.scm
svn-download.scm svn-download: Reduce svn-fetch builder duplication. 2024-06-11 11:33:22 +01:00
swh.scm swh: Specify 'extid_version' when looking up by external ID. 2024-06-26 23:56:56 +02:00
tests.scm guix: tests: Increase timeout for test store connection. 2024-08-01 10:32:31 +01:00
transformations.scm transformations: Fix powerpc64le support. 2024-06-11 12:39:44 +03:00
ui.scm guix: packages: Add &unsupported-cross-compilation-target-error. 2024-07-15 22:34:24 +01:00
upstream.scm upstream: update-package-inputs: Sort extra inputs. 2024-02-19 11:44:47 +01:00
utils.scm utils: Don’t re-export ‘call-with-temporary-output-file’. 2024-04-15 22:36:42 +02:00
workers.scm