GNU bug report logs - #70494
[PATCH 00/23] Groundwork for the Guile guix-daemon

Previous Next

Package: guix-patches;

Reported by: Christopher Baines <mail <at> cbaines.net>

Date: Sun, 21 Apr 2024 09:37:01 UTC

Severity: normal

Tags: patch

Full log


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

From: Christopher Baines <mail <at> cbaines.net>
To: 70494 <at> debbugs.gnu.org
Subject: [PATCH 16/23] store: database: Log when aborting transactions.
Date: Sun, 21 Apr 2024 10:42:34 +0100
Otherwise this has the effect of masking the backtrace/exception.

* guix/store/database.scm (call-with-transaction): Log when aborting.

Change-Id: Iee31905c4688dc62ef37a85b0208fd324ee67d70
---
 guix/store/database.scm | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/guix/store/database.scm b/guix/store/database.scm
index 8a3436368e..b6f87d710f 100644
--- a/guix/store/database.scm
+++ b/guix/store/database.scm
@@ -154,9 +154,17 @@ (define* (call-with-transaction db proc #:key restartable?)
   (sqlite-exec db (if restartable? "begin;" "begin immediate;"))
   (catch #t
     (lambda ()
-      (let-values ((result (proc)))
-        (sqlite-exec db "commit;")
-        (apply values result)))
+      (with-throw-handler #t
+        (lambda ()
+          (call-with-values proc
+            (lambda vals
+              (sqlite-exec db "commit;")
+              (apply values vals))))
+        (lambda (key args)
+          (simple-format
+           (current-error-port)
+           "transaction aborted: ~A: ~A\n" key args)
+          (backtrace))))
     (lambda args
       ;; The roll back may or may not have occurred automatically when the
       ;; error was generated. If it has occurred, this does nothing but signal
-- 
2.41.0





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

Previous Next


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