GNU bug report logs - #52555
[RFC PATCH 0/3] Decentralized substitute distribution with ERIS

Previous Next

Package: guix-patches;

Reported by: pukkamustard <pukkamustard <at> posteo.net>

Date: Thu, 16 Dec 2021 16:18:02 UTC

Severity: important

Tags: patch

Full log


Message #55 received at 52555 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: pukkamustard <pukkamustard <at> posteo.net>, 52555 <at> debbugs.gnu.org
Cc: ~pukkamustard/eris <at> lists.sr.ht
Subject: Re: [bug#52555] [RFC PATCH v2 2/5] publish: Add ERIS URN to narinfo
Date: Sat, 29 Jan 2022 22:15:35 +0100
[Message part 1 (text/plain, inline)]
pukkamustard schreef op di 25-01-2022 om 19:21 [+0000]:
> +  (define (eris-encode-nar compressions)
> +    (and (member %eris-zstd-compression compressions)
> +         (let* ((nar (nar-cache-file cache item
> +                                     #:compression %eris-zstd-compression))
> +                (stat (stat nar #f)))
> +           (and stat
> +                (call-with-input-file nar
> +                  (cut eris-encode->string <>
> +                       #:block-size %eris-block-size-large))))))

Why are exceptions turned into #f (in (stat nar #f))?
Should this be done for all I/O errors, including, say, EOVERFLOW,
ENOMEM or ENAMETOOLONG, or only for ENOENT?

Is a race condition possible here?  If so, maybe consider doing
something like

  (catch 'system-error
    (lambda () (call-with-input-file ...))
    (lambda exception
      (and it-is-a-ENOENT
           (apply throw exception))))

to avoid it?

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 1 year and 168 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.