فهرست منبع

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