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
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
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
metrics
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
password Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
pprof
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
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
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
sync
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
timeutil
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
uri
user
util Use single shared random string generation function (#15741) 2021-05-10 07:45:17 +01:00
validation
web Fix setting of SameSite on cookies (#15989) 2021-05-26 21:01:07 -04:00