From 7f5f11048bd6d28b001f5fff31b9149f1a9e96b9 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 2 Apr 2024 12:16:27 +0100 Subject: Add error handling for startup failures --- scripts/guix-data-service.in | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) (limited to 'scripts') diff --git a/scripts/guix-data-service.in b/scripts/guix-data-service.in index 2393f1e..8a124ee 100644 --- a/scripts/guix-data-service.in +++ b/scripts/guix-data-service.in @@ -201,22 +201,29 @@ (call-with-new-thread (lambda () - (run-sqitch) - - (for-each - (lambda (git-repository-details) - (when (fifth git-repository-details) - (simple-format #t "starting thread to poll ~A (~A)\n" - (second git-repository-details) - (third git-repository-details)) - - (start-thread-to-poll-git-repository - (first git-repository-details)))) - (with-postgresql-connection - "poll-startup" - all-git-repositories)) - - (atomic-box-set! startup-completed #t))) + (with-exception-handler + (lambda (exn) + (simple-format + (current-error-port) + "startup failed: ~A\n" exn) + (exit 1)) + (lambda () + (run-sqitch) + + (for-each + (lambda (git-repository-details) + (when (fifth git-repository-details) + (simple-format #t "starting thread to poll ~A (~A)\n" + (second git-repository-details) + (third git-repository-details)) + + (start-thread-to-poll-git-repository + (first git-repository-details)))) + (with-postgresql-connection + "poll-startup" + all-git-repositories)) + + (atomic-box-set! startup-completed #t))))) ;; Provide some visual space between the startup output and the ;; server starting -- cgit v1.2.3