0
0
Fork 0
mirror of https://github.com/go-gitea/gitea synced 2024-12-26 15:14:24 +01:00
gitea/modules
zeripath 0dcc74a8a7
Prevent dangling cat-file calls (goroutine alternative) (#19454)
If an `os/exec.Command` is passed non `*os.File` as an input/output, go
will create `os.Pipe`s and wait for their closure in `cmd.Wait()`.  If
the code following this is responsible for closing `io.Pipe`s or other
handlers then on process death from context cancellation the `Wait` can
hang.

There are two possible solutions:

1. use `os.Pipe` as the input/output as `cmd.Wait` does not wait for these.
2. create a goroutine waiting on the context cancellation that will close the inputs.

This PR provides the second option - which is a simpler change that can
be more easily backported.

Closes #19448

Signed-off-by: Andrew Thornton <art27@cantab.net>
2022-04-22 17:20:04 +02:00
..
activitypub
analyze
appstate Use a struct as test options (#19393) 2022-04-14 21:58:21 +08:00
auth
avatar
base
cache
charset
container
context RepoAssignment ensure to close before overwrite (#19449) 2022-04-21 17:17:57 +02:00
convert Set correct PR status on 3way on conflict checking (#19457) 2022-04-21 22:55:45 +01:00
csv
doctor
emoji
eventsource
generate
git Prevent dangling cat-file calls (goroutine alternative) (#19454) 2022-04-22 17:20:04 +02:00
gitgraph
graceful
hcaptcha
highlight
hostmatcher
httpcache
httplib
indexer Use a struct as test options (#19393) 2022-04-14 21:58:21 +08:00
json
lfs
log
markup Remove legacy unmaintained packages, refactor to support change default locale (#19308) 2022-04-03 17:46:48 +08:00
metrics
migration
nosql
notification Use a struct as test options (#19393) 2022-04-14 21:58:21 +08:00
options
packages Add Helm Chart registry (#19406) 2022-04-19 12:55:35 -04:00
paginator Remove legacy unmaintained packages, refactor to support change default locale (#19308) 2022-04-03 17:46:48 +08:00
password
pprof
private
process
proxy
public
queue Prevent intermittent NPE in queue tests (#19301) 2022-04-02 15:59:04 +08:00
recaptcha
references
repository Use a struct as test options (#19393) 2022-04-14 21:58:21 +08:00
secret
session
setting Fixed registry host value. (#19363) 2022-04-10 19:57:36 +08:00
ssh
storage
structs When updating mirror repo intervals by API reschedule next update too (#19429) 2022-04-20 09:20:53 +01:00
svg
sync
templates
test
timeutil Remove legacy unmaintained packages, refactor to support change default locale (#19308) 2022-04-03 17:46:48 +08:00
translation Remove legacy unmaintained packages, refactor to support change default locale (#19308) 2022-04-03 17:46:48 +08:00
typesniffer
updatechecker
upload
uri
user
util
validation
web Refactor CSRF protection modules, make sure CSRF tokens can be up-to-date. (#19337) 2022-04-08 13:21:05 +08:00