GNU bug report logs - #64317
[Cuirass] Download products can disappear, leading to HTTP 500

Previous Next

Package: guix;

Reported by: Ludovic Courtès <ludovic.courtes <at> inria.fr>

Date: Tue, 27 Jun 2023 14:10:02 UTC

Severity: normal

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Ludovic Courtès <ludovic.courtes <at> inria.fr>
Subject: bug#64317: closed (Re: bug#64317: [Cuirass] Download products can
 disappear, leading to HTTP 500)
Date: Thu, 24 Aug 2023 15:23:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#64317: [Cuirass] Download products can disappear, leading to HTTP 500

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 64317 <at> debbugs.gnu.org.

-- 
64317: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64317
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org>
To: 64317-done <at> debbugs.gnu.org
Subject: Re: bug#64317: [Cuirass] Download products can disappear, leading
 to HTTP 500
Date: Thu, 24 Aug 2023 17:22:18 +0200
Ludovic Courtès <ludovic.courtes <at> inria.fr> skribis:

> The /download endpoint refers directly to store items.  However, they
> can be GC’d in the meantime, in which case the HTTP handler fails
> gracelessly (HTTP 500 or so) as shown here:
>
> 2023-06-27 16:02:24 GET /download/718
> 2023-06-27 16:02:24 Uncaught exception in task:
> 2023-06-27 16:02:24 In fibers.scm:
> 2023-06-27 16:02:24     172:8  1 (_)
> 2023-06-27 16:02:24 In ice-9/boot-9.scm:
> 2023-06-27 16:02:24   1685:16  0 (raise-exception _ #:continuable? _)
> 2023-06-27 16:02:24 ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> 2023-06-27 16:02:24 In procedure open-file: No such file or directory: "/gnu/store/bnsh1yk4l913af8swqi3x7xp1xsa8gq7-guix-binary.tar.xz"
>
> The solution IMO is to (1) register GC roots for these, (2) periodically
> remove old GC roots, and (3) return 404 when the file has vanished.

Fixed with these Cuirass commits:

  9e897d8 'create-build-outputs' registers a GC root on build products.
  103a6ec http: Gracefully handle missing files in "/download".
  5e3e49c http: "/download" returns 404 rather than 500 for "not found".

Ludo’.

[Message part 3 (message/rfc822, inline)]
From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: bug-guix <at> gnu.org
Subject: [Cuirass] Download products can disappear, leading to HTTP 500
Date: Tue, 27 Jun 2023 16:09:16 +0200
The /download endpoint refers directly to store items.  However, they
can be GC’d in the meantime, in which case the HTTP handler fails
gracelessly (HTTP 500 or so) as shown here:

--8<---------------cut here---------------start------------->8---
2023-06-27 16:02:24 GET /download/718
2023-06-27 16:02:24 Uncaught exception in task:
2023-06-27 16:02:24 In fibers.scm:
2023-06-27 16:02:24     172:8  1 (_)
2023-06-27 16:02:24 In ice-9/boot-9.scm:
2023-06-27 16:02:24   1685:16  0 (raise-exception _ #:continuable? _)
2023-06-27 16:02:24 ice-9/boot-9.scm:1685:16: In procedure raise-exception:
2023-06-27 16:02:24 In procedure open-file: No such file or directory: "/gnu/store/bnsh1yk4l913af8swqi3x7xp1xsa8gq7-guix-binary.tar.xz"
--8<---------------cut here---------------end--------------->8---

The solution IMO is to (1) register GC roots for these, (2) periodically
remove old GC roots, and (3) return 404 when the file has vanished.

Ludo’.



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

Previous Next


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