diff options
-rw-r--r-- | guix-qa-frontpage/server.scm | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/guix-qa-frontpage/server.scm b/guix-qa-frontpage/server.scm index 0639f19..2f70a6a 100644 --- a/guix-qa-frontpage/server.scm +++ b/guix-qa-frontpage/server.scm @@ -953,15 +953,34 @@ Disallow: /issue (run-knots-web-server (lambda (request) - (apply values (handler request - (read-request-body request) - controller))) - #:exception-handler - (lambda (exn request) - (default-exception-handler exn request) - (apply values - (render-html #:sxml (error-page exn) - #:code 500))) + (with-exception-handler + (lambda (exn) + (apply values + (render-html #:sxml (error-page exn) + #:code 500))) + (lambda () + (with-exception-handler + (lambda (exn) + (let* ((error-string + (call-with-output-string + (lambda (port) + (simple-format + port + "exception when processing: ~A ~A\n" + (request-method request) + (uri-path (request-uri request))) + (print-backtrace-and-exception/knots + exn + #:port port))))) + (display error-string + (current-error-port))) + + (raise-exception exn)) + (lambda () + (apply values (handler request + (read-request-body request) + controller))))) + #:unwind? #t)) #:host host #:port port) |