[bug#57850,1/2] marionette: Make it easier to debug REPL read failures.
Commit Message
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(-)
Comments
Hey Chris,
> Log the remaining contnet written to the REPL, so that there's more to go on
^
content
Looks fine!
Mathieu
@@ -178,7 +178,18 @@ (define (marionette-eval exp marionette)
(($ <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))