瀏覽代碼

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

httpproxy: fix race on getting close notifier channel
Anthony Romano 9 年之前
父節點
當前提交
b24d0032d2
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      proxy/httpproxy/reverse.go

+ 2 - 1
proxy/httpproxy/reverse.go

@@ -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()