kraih/mojo — pull request #235 by xaka (2011-12-08 08:17:43+00:00)
Title: ioloop drops the connection because its active time isn't updated for buffered writes

I'm not sure the "buffer" event is the correct solution, but at least you know what's "wrong". Client sends a request, server parses it, then handles it and writes the response using buffered writes. Buffered writes don't update the active time value so when the next ioloop iteration begins, the connection is being closed.

To reproduce you should run Morbo, set keepalive timeout to 1s and sleep in controller for a longer time. Such timeout is for inactive clients which don't send the requests, but not for inactive (or super-slow) servers. Browsers (clients) have their own timeout for that.