forgejo/modules
zeripath daa5a23548
Set self-adjusting deadline for connection writing (#16068)
* Set self-adjusting deadline for connection writing

In #16055 it appears that the simple 5s deadline doesn't work for large
file writes. Now we can't - or at least shouldn't just set no deadline
as go will happily let these connections block indefinitely. However,
what seems reasonable is to set some minimum rate we expect for writing.

This PR suggests the following algorithm:

* Every write has a minimum timeout of 5s (adjustable at compile time.)
* If there has been a previous write - then consider its previous
deadline, add half of the minimum timeout + 2s per kb about to written.
* If that new deadline is after the minimum timeout use that.

Fix #16055

* Linearly increase timeout

* Make PerWriteTimeout, PerWritePerKbTimeouts configurable

Signed-off-by: Andrew Thornton <art27@cantab.net>

Co-authored-by: 6543 <6543@obermui.de>
2021-06-11 00:25:25 +03:00
..
analyze Speed up enry.IsVendor (#15213) 2021-04-01 19:41:09 +02:00
auth Add sso.Group, context.Auth, context.APIAuth to allow auth special routes (#16086) 2021-06-09 19:53:16 +02:00
avatar Add Image Diff for SVG files (#14867) 2021-06-05 15:32:19 +03:00
base Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
cache [Vendor] Update go-redis to v8.5.0 (#13749) 2021-02-10 21:28:32 +00:00
charset Refactor renders (#15175) 2021-04-19 18:25:08 -04:00
context Add sso.Group, context.Auth, context.APIAuth to allow auth special routes (#16086) 2021-06-09 19:53:16 +02:00
convert Fix individual tests (addition to #15802) (#15818) 2021-05-12 00:13:42 -04:00
cron add cron job to delete old actions from database (#15688) 2021-05-01 14:17:02 +02:00
csv Refactor renders (#15175) 2021-04-19 18:25:08 -04:00
doctor Add err to log (#15813) 2021-05-10 20:48:23 +01:00
emoji Fix several render issues (#14986) 2021-03-16 00:20:05 +01:00
eventsource Hold the event source when there are no listeners (#15725) 2021-05-15 23:46:13 +02:00
generate Use single shared random string generation function (#15741) 2021-05-10 07:45:17 +01:00
git Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
gitgraph Fix bug on commit graph (#15517) 2021-04-17 10:27:25 +01:00
graceful Set self-adjusting deadline for connection writing (#16068) 2021-06-11 00:25:25 +03:00
hcaptcha hCaptcha Support (#12594) 2020-10-02 23:37:53 -04:00
highlight Allow custom highlight mapping beyond file extensions (#15808) 2021-05-13 12:31:23 +03:00
httpcache Add ETag header (#15370) 2021-04-12 10:49:26 -04:00
httplib fix webhook timeout bug (#15613) 2021-04-25 21:48:12 +03:00
indexer Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
lfs Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
log Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
markup Fix data URI scramble (#16098) 2021-06-07 18:55:26 +02:00
matchlist Add Allow-/Block-List for Migrate & Mirrors (#13610) 2020-11-28 19:37:58 -05:00
metrics Prometheus endpoint (#5256) 2018-11-04 22:20:00 -05:00
migrations Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
nosql Fix setting redis db path (#15698) 2021-05-03 13:24:24 -04:00
notification Don't manipulate input params in email notification (#16011) 2021-05-30 10:38:38 +01:00
options Add StatDir and replace com.StatDir (#14099) 2020-12-22 07:40:57 +08:00
password Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
pprof Add golangci (#6418) 2019-06-12 15:41:28 -04:00
private add a new internal hook to save ssh log (#15787) 2021-05-21 17:37:16 -04:00
process Code Formats, Nits & Unused Func/Var deletions (#15286) 2021-04-09 09:40:34 +02:00
public Improve assets handler middleware (#15961) 2021-05-30 18:25:11 +08:00
queue Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
recaptcha Migrate to use jsoniter instead of encoding/json (#14841) 2021-03-01 22:08:10 +01:00
references Respect default merge message syntax when parsing item references (#15772) 2021-05-09 19:25:23 +01:00
repofiles Code Formats, Nits & Unused Func/Var deletions (#15286) 2021-04-09 09:40:34 +02:00
repository Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
secret Use single shared random string generation function (#15741) 2021-05-10 07:45:17 +01:00
session Migrate to use jsoniter instead of encoding/json (#14841) 2021-03-01 22:08:10 +01:00
setting Set self-adjusting deadline for connection writing (#16068) 2021-06-11 00:25:25 +03:00
ssh Set self-adjusting deadline for connection writing (#16068) 2021-06-11 00:25:25 +03:00
storage Code Formats, Nits & Unused Func/Var deletions (#15286) 2021-04-09 09:40:34 +02:00
structs Add Active and ProhibitLogin to API (#15689) 2021-05-11 02:22:29 +02:00
svg Fix filepath basename on Windows for SVG bindata (#12241) 2020-07-13 21:16:40 +01:00
sync Fix missing unlock in uniquequeue (#9790) 2020-01-15 23:58:33 +02:00
task Encrypt migration credentials at rest (#15895) 2021-05-31 04:25:47 -04:00
templates Fix incorrect asset URL (#15805) 2021-05-09 21:03:09 +01:00
test Move middlewares to web/middleware (#14480) 2021-01-30 10:55:53 +02:00
timeutil Fix display since time round (#14226) 2021-01-28 13:29:22 +01:00
translation Use index of the supported tags to choose user lang (#15452) 2021-04-14 19:52:01 +01:00
typesniffer Add Image Diff for SVG files (#14867) 2021-06-05 15:32:19 +03:00
upload Update golangci-lint to version 1.31.0 (#13102) 2020-10-11 21:27:20 +01:00
uri Dump github/gitlab/gitea repository data to a local directory and restore to gitea (#12244) 2020-12-27 11:34:19 +08:00
user Add gitea-vet (#10948) 2020-04-05 07:20:50 +01:00
util Use single shared random string generation function (#15741) 2021-05-10 07:45:17 +01:00
validation Move macaron to chi (#14293) 2021-01-26 16:36:53 +01:00
web Fix setting of SameSite on cookies (#15989) 2021-05-26 21:01:07 -04:00