[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/04: Guard against errors when inserting log data
From: |
Christopher Baines |
Subject: |
02/04: Guard against errors when inserting log data |
Date: |
Tue, 7 Apr 2020 16:21:30 -0400 (EDT) |
cbaines pushed a commit to branch master
in repository data-service.
commit 7db6a8fa03624ff21bf26598f340d24c8653a9cf
Author: Christopher Baines <address@hidden>
AuthorDate: Tue Apr 7 17:37:38 2020 +0100
Guard against errors when inserting log data
PostgreSQL seems to be unhappy with some data, I guess because it gets a bit
jumbled. Rather than failing the job, or getting stuck not inserting logs,
try
and capture the error, log the details, and then keep going.
---
guix-data-service/jobs/load-new-guix-revision.scm | 26 +++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/guix-data-service/jobs/load-new-guix-revision.scm
b/guix-data-service/jobs/load-new-guix-revision.scm
index 91183e5..6731abf 100644
--- a/guix-data-service/jobs/load-new-guix-revision.scm
+++ b/guix-data-service/jobs/load-new-guix-revision.scm
@@ -94,8 +94,30 @@
(if (string-contains s "\n")
(let ((output (string-append buffer s)))
(set! buffer "") ; clear the buffer
- (insert job-id output)
- (display output output-port))
+ (catch #t
+ (lambda ()
+ (insert job-id output)
+ (display output output-port))
+ (lambda (key . args)
+ (display
+ (simple-format
+ #f
+ "
+error: ~A: ~A
+error: could not insert log part: '~A'\n\n"
+ key args output)
+ output-port)
+ (catch #t
+ (lambda ()
+ (insert
+ job-id
+ (simple-format
+ #f
+ "
+guix-data-service: error: missing log line: ~A
+\n" key)))
+ (lambda ()
+ #t)))))
(set! buffer (string-append buffer s))))
(exec-query