do not flush if Write() failed (#13597)

- Go might reset the internal http.ResponseWriter() to `nil`
  after Write() failure if the go-routine has returned, do not
  flush() such scenarios and avoid spurious flushes() as
  returning handlers always flush.
- fix some racy tests with the console 
- avoid ticker leaks in certain situations
This commit is contained in:
Harshavardhana
2021-11-18 17:19:58 -08:00
committed by GitHub
parent 7700973538
commit fb268add7a
9 changed files with 112 additions and 54 deletions

View File

@@ -92,7 +92,6 @@ func (srv *Server) Start(ctx context.Context) (err error) {
w.Header().Set("Connection", "close")
w.WriteHeader(http.StatusServiceUnavailable)
w.Write([]byte(http.ErrServerClosed.Error()))
w.(http.Flusher).Flush()
return
}