GNU bug report logs - #55911
[PATCH] channels: Print backtrace when generating package cache fails.

Previous Next

Package: guix-patches;

Reported by: Josselin Poiret <dev <at> jpoiret.xyz>

Date: Sat, 11 Jun 2022 16:31:01 UTC

Severity: normal

Tags: patch

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: Josselin Poiret <dev <at> jpoiret.xyz>
Subject: bug#55911: closed (Re: bug#55911: [PATCH] channels: Print
 backtrace when generating package cache fails.)
Date: Thu, 16 Jun 2022 09:11:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#55911: [PATCH] channels: Print backtrace when generating package cache fails.

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

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

-- 
55911: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55911
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: Josselin Poiret <dev <at> jpoiret.xyz>
Cc: 55911-done <at> debbugs.gnu.org
Subject: Re: bug#55911: [PATCH] channels: Print backtrace when generating
 package cache fails.
Date: Thu, 16 Jun 2022 11:10:49 +0200
Hi Josselin,

Josselin Poiret <dev <at> jpoiret.xyz> skribis:

> * guix/channels.scm (package-cache-file): Add a throw handler around
> the generate-package-cache call, and print backtrace in it.
> ---
> IRC promptly pointed out that Guix has required Guile ver>=2 since way before
> guix repl and guix pull were ever a thing, thus drop the Guile 1 compatibility
> code.  Enjoy this v2

That’s a good idea.  Applied!

Thanks for the patch and for paying attention to compatibility!

Ludo’.

[Message part 3 (message/rfc822, inline)]
From: Josselin Poiret <dev <at> jpoiret.xyz>
To: guix-patches <at> gnu.org
Cc: Josselin Poiret <dev <at> jpoiret.xyz>
Subject: [PATCH] channels: Print backtrace when generating package cache fails.
Date: Sat, 11 Jun 2022 18:30:31 +0200
* guix/channels.scm (package-cache-file): Add a throw handler around
the generate-package-cache call, and print backtrace in it.
---
 guix/channels.scm | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/guix/channels.scm b/guix/channels.scm
index 20f347d34f..e3a4daf7b3 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -911,7 +911,17 @@ (define build
                 (format (current-error-port)
                         "Generating package cache for '~a'...~%"
                         #$profile)
-                (generate-package-cache #$output))
+                ;; This script runs through (primitive-load), which by default
+                ;; doesn't print backtraces when it encounters an exception,
+                ;; so manually do it.  Use with-throw-handler because it is
+                ;; supported by all Guile versions.
+                (with-throw-handler #t
+                  (lambda () (generate-package-cache #$output))
+                  (lambda (key . args)
+                    ;; Guile 1 prints the whole backtrace, and would need a
+                    ;; fluid set for the backtrace procedure to work, so ignore.
+                    (unless (string-prefix? "1" (version))
+                      (backtrace)))))
               (mkdir #$output))))
 
     (gexp->derivation-in-inferior "guix-package-cache" build
-- 
2.36.1




This bug report was last modified 2 years and 338 days ago.

Previous Next


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