Merge pull request #5269 from heyitsanthony/fix-httpproxy-race

httpproxy: fix race on getting close notifier channel
This commit is contained in:
Anthony Romano 2016-05-04 09:49:19 -07:00
commit b24d0032d2

View File

@ -112,9 +112,10 @@ func (p *reverseProxy) ServeHTTP(rw http.ResponseWriter, clientreq *http.Request
closeNotifier, ok := rw.(http.CloseNotifier)
cancel := httputil.RequestCanceler(p.transport, proxyreq)
if ok {
closeCh := closeNotifier.CloseNotify()
go func() {
select {
case <-closeNotifier.CloseNotify():
case <-closeCh:
atomic.StoreInt32(&requestClosed, 1)
log.Printf("proxy: client %v closed request prematurely", clientreq.RemoteAddr)
cancel()