Maxim Cournoyer writes: > Hi Christopher, > > Christopher Baines writes: > > [...] > >>> Here's a fresh crash (on berlin): >>> >>> 2023-10-24 06:22:58 GET >>> /graphql?query=query%20%7B%0A%20%20issue%28number%3A%2065806%29%20%7B%0A%20%20%20% >>> 20open%0A%20%20%7D%0A%7D%0A&variables=%7B%7D 200 >>> 2023-10-24 06:22:58 GET /issue/29433/attachment/1/ 200 >>> 2023-10-24 06:22:58 GET >>> /graphql?query=query%20%7B%0A%20%20issue%28number%3A%2065853%29%20%7B%0A%20%20%20% >>> 20open%0A%20%20%7D%0A%7D%0A&variables=%7B%7D 200 >>> 2023-10-24 06:22:58 GET >>> /graphql?query=query%20%7B%0A%20%20issue%28number%3A%2065869%29%20%7B%0A%20%20%20% >>> 20open%0A%20%20%7D%0A%7D%0A&variables=%7B%7D 200 >>> 2023-10-24 06:23:15 GET Uncaught exception in task: >>> 2023-10-24 06:23:15 In procedure port-auxiliary-write-buffer: Wrong >>> type argument in position 1 (expecting >>> open port): # >>> 2023-10-24 06:23:15 In fibers.scm: >>> 2023-10-24 06:23:15 172:8 6 (_) >>> 2023-10-24 06:23:15 In ice-9/boot-9.scm: >>> 2023-10-24 06:23:15 1752:10 5 (with-exception-handler _ _ #:unwind? _ # _) >>> 2023-10-24 06:23:15 In fibers/web/server.scm: >>> 2023-10-24 06:23:15 214:25 4 (_) >>> 2023-10-24 06:23:15 In ice-9/suspendable-ports.scm: >>> 2023-10-24 06:23:15 83:4 3 (write-bytes # #vu8(47 42 …) …) >>> 2023-10-24 06:23:15 In unknown file: >>> 2023-10-24 06:23:15 2 (port-write # #vu8(47 42 # …) …) >>> 2023-10-24 06:23:15 In ice-9/boot-9.scm: >>> 2023-10-24 06:23:15 1685:16 1 (raise-exception _ #:continuable? _) >>> 2023-10-24 06:23:15 1685:16 0 (raise-exception _ #:continuable? _) >>> 2023-10-24 06:23:15 ice-9/boot-9.scm:1685:16: In procedure raise-exception: >>> 2023-10-24 06:23:15 In procedure fport_write: Broken pipe >> >> I think this is kind of expected. If NGinx hits the proxy_read_timeout >> it'll return a 504 to the client and close the connection to Mumi I >> think. I think what you're seeing here is Mumi trying to respond to a >> request from NGinx that NGinx has closed. > > If it's expected, we should handle it and produce a useful warning > instead of crashing, right? As you can see from the above stack trace, this doesn't involve Mumi, it's more of an issue for the guile-fibers web server. But yes, it would be nice not to have this clutter in the logs. That being said, if there are ways of having the application internally timeout before NGinx times out, that can help to avoid this kind of issue. Maybe that's not that easy for Mumi though. I think I remember Ricardo doing some investigating and experimenting with switching to non-suspendable ports when writing responses, and I think that might have exhibited different behaviour. It's probably worth trying to reproduce this in isolation, and double checking if the ports implementation has any effect (obviously suspendable ports are better, but this might be informative).