guix-commits
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]