GNU bug report logs -
#66754
No guix locate lock error handling
Previous Next
Full log
View this message in rfc822 format
Change-Id: Iebe76c75d45e70317bd18d2c176dcdeaf9d6964c
Signed-off-by: Maciej Kalandyk <m.kalandyk <at> outlook.com>
---
guix/scripts/locate.scm | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/guix/scripts/locate.scm b/guix/scripts/locate.scm
index 93faa1aea2..a6b6036052 100644
--- a/guix/scripts/locate.scm
+++ b/guix/scripts/locate.scm
@@ -115,13 +115,21 @@ (define schema-to-migrate '((1 . "
")))
(define (call-with-database file proc)
- (let ((db (sqlite-open file)))
- (dynamic-wind
- (lambda () #t)
- (lambda ()
- (ensure-latest-database-schema db)
- (proc db))
- (lambda () (sqlite-close db)))))
+ (catch 'sqlite-error
+ (lambda ()
+ (let ((db (sqlite-open file)))
+ (dynamic-wind
+ (lambda () #t)
+ (lambda ()
+ (ensure-latest-database-schema db)
+ (proc db))
+ (lambda () (sqlite-close db)))))
+ (lambda (key . args)
+ (match args
+ [(_ 5 _)
+ (leave (G_ "database ~a is locked by another process~%")
+ file)]
+ [_ (apply throw (cons key args))]))))
(define (ensure-latest-database-schema db)
"Ensure DB follows the latest known version of the schema."
base-commit: 6d7e181ba18d11c92409a93936025fb46b9c8171
prerequisite-patch-id: 9ba8ba9723e24b3d15f07622ff1c5ae78567f6cd
--
2.41.0
This bug report was last modified 1 year and 269 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.