diff options
author | Christopher Baines <mail@cbaines.net> | 2024-04-19 16:57:17 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2024-04-19 16:57:17 +0100 |
commit | d64b070a8d6cbe9d7d88a73318ce5c97e462ecdb (patch) | |
tree | 3a0f878ffa8e72800ef4fe1dd5ff9f8fa59325b5 | |
parent | e2650b58fc624c93b1c9e1a558d8c08642c02ff9 (diff) | |
download | nar-herder-d64b070a8d6cbe9d7d88a73318ce5c97e462ecdb.tar nar-herder-d64b070a8d6cbe9d7d88a73318ce5c97e462ecdb.tar.gz |
Show backtraces for exceptions in transactions
-rw-r--r-- | nar-herder/database.scm | 10 |
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) |