mirror of
https://github.com/go-gitea/gitea.git
synced 2024-11-19 08:34:54 +01:00
0dcc74a8a7
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> |
||
---|---|---|
.. | ||
activitypub | ||
analyze | ||
appstate | ||
auth | ||
avatar | ||
base | ||
cache | ||
charset | ||
container | ||
context | ||
convert | ||
csv | ||
doctor | ||
emoji | ||
eventsource | ||
generate | ||
git | ||
gitgraph | ||
graceful | ||
hcaptcha | ||
highlight | ||
hostmatcher | ||
httpcache | ||
httplib | ||
indexer | ||
json | ||
lfs | ||
log | ||
markup | ||
metrics | ||
migration | ||
nosql | ||
notification | ||
options | ||
packages | ||
paginator | ||
password | ||
pprof | ||
private | ||
process | ||
proxy | ||
public | ||
queue | ||
recaptcha | ||
references | ||
repository | ||
secret | ||
session | ||
setting | ||
ssh | ||
storage | ||
structs | ||
svg | ||
sync | ||
templates | ||
test | ||
timeutil | ||
translation | ||
typesniffer | ||
updatechecker | ||
upload | ||
uri | ||
user | ||
util | ||
validation | ||
web |