guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/11: Guard against errors when recording job stderr output


From: Christopher Baines
Subject: 02/11: Guard against errors when recording job stderr output
Date: Fri, 9 Oct 2020 15:21:19 -0400 (EDT)

cbaines pushed a commit to branch master
in repository data-service.

commit da8586f62d46c72ec55479ef01587eabe434f32a
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Fri Oct 9 19:28:06 2020 +0100

    Guard against errors when recording job stderr output
    
    This might help at least handle errors when inserting data in to PostgreSQL.
---
 guix-data-service/jobs/load-new-guix-revision.scm | 29 ++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/guix-data-service/jobs/load-new-guix-revision.scm 
b/guix-data-service/jobs/load-new-guix-revision.scm
index 1a29add..de9d4a8 100644
--- a/guix-data-service/jobs/load-new-guix-revision.scm
+++ b/guix-data-service/jobs/load-new-guix-revision.scm
@@ -173,9 +173,32 @@ VALUES (nextval('" (log-part-sequence-name job_id) "'), 
$1, $2)")
            (let loop ((line (get-line port-to-read-from)))
              (let ((line-with-newline
                     (string-append line "\n")))
-               (insert logging-conn job-id line-with-newline)
-               (display line-with-newline real-output-port))
-             (loop (get-line port-to-read-from)))))))3
+               (catch #t
+                 (lambda ()
+                   (insert logging-conn job-id line-with-newline)
+                   (display line-with-newline real-output-port))
+                 (lambda (key . args)
+                   (display
+                    (simple-format
+                     #f
+                     "
+error: ~A: ~A
+error: could not insert log part: '~A'\n\n"
+                     key args line)
+                    real-output-port)
+                   (catch #t
+                     (lambda ()
+                       (insert
+                        logging-conn
+                        job-id
+                        (simple-format
+                         #f
+                         "
+guix-data-service: error: missing log line: ~A
+\n" key)))
+                     (lambda ()
+                       #t)))))
+             (loop (get-line port-to-read-from)))))))
 
      port-to-write-to)))
 



reply via email to

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