aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2024-04-19 16:57:17 +0100
committerChristopher Baines <mail@cbaines.net>2024-04-19 16:57:17 +0100
commitd64b070a8d6cbe9d7d88a73318ce5c97e462ecdb (patch)
tree3a0f878ffa8e72800ef4fe1dd5ff9f8fa59325b5
parente2650b58fc624c93b1c9e1a558d8c08642c02ff9 (diff)
downloadnar-herder-d64b070a8d6cbe9d7d88a73318ce5c97e462ecdb.tar
nar-herder-d64b070a8d6cbe9d7d88a73318ce5c97e462ecdb.tar.gz
Show backtraces for exceptions in transactions
-rw-r--r--nar-herder/database.scm10
1 files changed, 9 insertions, 1 deletions
diff --git a/nar-herder/database.scm b/nar-herder/database.scm
index 426def6..ded7c2c 100644
--- a/nar-herder/database.scm
+++ b/nar-herder/database.scm
@@ -539,7 +539,15 @@ PRAGMA optimize;")))
(let ((start-time (get-internal-real-time)))
(call-with-values
(lambda ()
- (proc db))
+ (with-throw-handler #t
+ (lambda ()
+ (proc db))
+ (lambda (key . args)
+ (simple-format
+ (current-error-port)
+ "exception in transaction: ~A: ~A\n"
+ key args)
+ (backtrace))))
(lambda vals
(let ((duration-seconds
(/ (- (get-internal-real-time) start-time)