mirror of
https://github.com/ipfs/kubo.git
synced 2026-03-02 14:58:03 +08:00
fix another panic where CloseNotify was called from wrong goroutine
panic: net/http: CloseNotify called after ServeHTTP finished
goroutine 180 [running]:
net/http.(*response).CloseNotify(0xc8220684e0, 0x0)
/home/r/go/src/net/http/server.go:1535 +0x9d
github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/prometheus/client_golang/
/home/r/src/github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/prome
github.com/ipfs/go-ipfs/core/corehttp.(*gatewayHandler).getOrHeadHandler.func1(0x7
/home/r/src/github.com/ipfs/go-ipfs/core/corehttp/gateway_handler.go:119 +
created by github.com/ipfs/go-ipfs/core/corehttp.(*gatewayHandler).getOrHeadHandle
/home/r/src/github.com/ipfs/go-ipfs/core/corehttp/gateway_handler.go:123 +
License: MIT
Signed-off-by: Robert Carlsen <rwcarlsen@gmail.com>
This commit is contained in:
parent
37258a262b
commit
5367ee76d0
@ -114,9 +114,10 @@ func (i *gatewayHandler) getOrHeadHandler(w http.ResponseWriter, r *http.Request
|
||||
defer cancel()
|
||||
|
||||
if cn, ok := w.(http.CloseNotifier); ok {
|
||||
clientGone := cn.CloseNotify()
|
||||
go func() {
|
||||
select {
|
||||
case <-cn.CloseNotify():
|
||||
case <-clientGone:
|
||||
case <-ctx.Done():
|
||||
}
|
||||
cancel()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user