diff options
context:
space:
mode:
authorBryce Kwon <bryce@brycekwon.com>
committerBryce Kwon <bryce@brycekwon.com>
commit
parent
tree
download
End a request quietly when the client has gone
A write that failed with EPIPE on an uncached page died into an error page, which died again at exit when the page could not be sent either, and git logged a recursion warning on every dropped connection. A filter that exits early fails a write the same way, so the quiet exit is kept for writes that reach the client itself.
Diffstat (limited to 'source/cgit.c')
-rw-r--r--source/cgit.c4
1 file changed, 3 insertions, 1 deletion
diff --git a/source/cgit.c b/source/cgit.c
index 3e47dbe..633b011 100644
--- a/source/cgit.c
+++ b/source/cgit.c
@@ -1380,7 +1380,9 @@ int cmd_main(int argc, const char **argv)
strbuf_release(&cache_key);
cgit_cleanup_filters();
- if (err)
+ // A slot that could not be sent because the client went away is not
+ // worth an error page nobody will read.
+ if (err && err != EPIPE)
cgit_print_error("Error processing page: %s (%d)", strerror(err), err);
return err;
}