From 0f46d4f1477b0446abd089f842ac7409963cc4f1 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Fri, 16 Sep 2022 00:49:48 +0200 Subject: marionette: Make it easier to debug REPL read failures. Log the remaining contnet written to the REPL, so that there's more to go on than: socket:5:14: Unknown # object: "#<" * gnu/build/marionette.scm (marionette-eval): Catch exceptions from read and log the remainder of the content from the REPL. --- gnu/build/marionette.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'gnu/build/marionette.scm') diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm index 06b699bd7b..fd59a4c72f 100644 --- a/gnu/build/marionette.scm +++ b/gnu/build/marionette.scm @@ -178,7 +178,18 @@ (define (marionette-eval exp marionette) (($ command pid monitor (= force repl)) (write exp repl) (newline repl) - (read repl)))) + (with-exception-handler + (lambda (exn) + (simple-format + (current-error-port) + "error reading marionette response: ~A + remaining response: ~A\n" + exn + (get-line repl)) + (raise-exception exn)) + (lambda () + (read repl)) + #:unwind? #t)))) (define* (wait-for-file file marionette #:key (timeout 10) (read 'read)) -- cgit v1.2.3