guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/17: cache: 'file-expiration-time' uses 'lstat', not 'stat'.


From: guix-commits
Subject: 02/17: cache: 'file-expiration-time' uses 'lstat', not 'stat'.
Date: Tue, 11 Jul 2023 11:01:31 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit fe3321f91ae331d3f1d4a389f28fdf02f74da7e8
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Tue Jul 11 00:27:31 2023 +0200

    cache: 'file-expiration-time' uses 'lstat', not 'stat'.
    
    Fixes a bug whereby 'cached-channel-instance' would potentially consider
    cache entries obsolete too early because they refer to items in the
    store, which is mounted as 'noatime' on Guix System.
    
    * guix/cache.scm (file-expiration-time): Use 'lstat' and
    'false-if-exception' rather than 'stat'.  This matches what (guix
    scripts shell) does.
---
 guix/cache.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/guix/cache.scm b/guix/cache.scm
index be0de90e67..6a91c7d3ef 100644
--- a/guix/cache.scm
+++ b/guix/cache.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2020, 2021 Ludovic Courtès 
<ludo@gnu.org>
+;;; Copyright © 2013-2017, 2020-2021, 2023 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2022 Simon Tournier <zimon.toutoune@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -55,7 +55,7 @@
 time\" computed as its timestamp + TTL seconds.  Call TIMESTAMP to obtain the
 relevant timestamp from the result of 'stat'."
   (lambda (file)
-    (match (stat file #f)
+    (match (false-if-exception (lstat file))
       (#f 0)                       ;FILE may have been deleted in the meantime
       (st (+ (timestamp st) ttl)))))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]