Skip to content

Add write deadline to Git HTTP responses

Jacob Vosmaer (GitLab) requested to merge git-http-timeout-writer into master

Fixes https://gitlab.com/gitlab-org/gitlab-workhorse/issues/66

High-level approach to cleaning up connections that don't finish reading their HTTP response.

A Go HTTP response has two parts: one call to WriteHeader and multiple calls to Write. Each of these calls, which normally takes less than a second (think: sending 32kB of data over a TCP connection), gets a 10-minute deadline. By putting a new deadline on each call, instead of a deadline on the entire request-reponse cycle, we allow arbitrarily large responses to be sent.

Merge request reports