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.
This commit is contained in:
Christopher Baines 2022-09-16 00:49:48 +02:00
parent d0376f6718
commit 0f46d4f147
No known key found for this signature in database
GPG Key ID: 5E28A33B0B84F577

View File

@ -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))