diff options
author | Christopher Baines <mail@cbaines.net> | 2022-09-16 00:49:48 +0200 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2022-09-16 11:59:39 +0200 |
commit | 0f46d4f1477b0446abd089f842ac7409963cc4f1 (patch) | |
tree | 71c57da9e765d8393c44514021ef2f09b3e5000a | |
parent | d0376f6718b57be90b2f7697c90e4ecbe0090e0f (diff) | |
download | guix-0f46d4f1477b0446abd089f842ac7409963cc4f1.tar guix-0f46d4f1477b0446abd089f842ac7409963cc4f1.tar.gz |
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.
-rw-r--r-- | gnu/build/marionette.scm | 13 |
1 files changed, 12 insertions, 1 deletions
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 @@ QEMU monitor and to the guest's backdoor REPL." (($ <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)) |