From 341eb4a2838ff1d39601f22badcb99a19acbab0c Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 5 Nov 2023 18:49:11 +0000 Subject: [PATCH] Handle eof when reading logs --- guix-data-service/jobs.scm | 43 ++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/guix-data-service/jobs.scm b/guix-data-service/jobs.scm index 9bac5e1..f848f2e 100644 --- a/guix-data-service/jobs.scm +++ b/guix-data-service/jobs.scm @@ -72,33 +72,36 @@ VALUES (nextval('" (log-part-sequence-name job_id) "'), $1, $2)") (list job-id)) (let loop ((line (get-line port-to-read-from))) - (let ((line-with-newline - (string-append line "\n"))) - (catch #t - (lambda () - (insert logging-conn job-id line-with-newline) - (display line-with-newline)) - (lambda (key . args) - (display - (simple-format - #f - " -error: ~A: ~A -error: could not insert log part: '~A'\n\n" - key args line)) + (if (eof-object? line) + (simple-format #t "finished reading logs for ~A\n" + job-id) + (let ((line-with-newline + (string-append line "\n"))) (catch #t (lambda () - (insert - logging-conn - job-id + (insert logging-conn job-id line-with-newline) + (display line-with-newline)) + (lambda (key . args) + (display (simple-format #f " +error: ~A: ~A +error: could not insert log part: '~A'\n\n" + key args line)) + (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))))))) + (lambda _ + #t)))) + (loop (get-line port-to-read-from))))))))) port-to-write-to)))