-
Notifications
You must be signed in to change notification settings - Fork 18k
net/http/httputil: ReverseProxy FlushInterval no longer flushes headers in go1.12 #31125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Change https://golang.org/cl/170066 mentions this issue: |
Could this be tracked for Go 1.12.2 ? (is a separate tracking issue needed for that?) |
cc @bradfitz for investigation and decision regarding a possible backport
In general, after the issue has been investigated, a team member will decide if it qualifies for a backport. Then a backport issue will be opened. |
Work-around for Go 1.12:
|
@gopherbot, please backport to Go 1.12. |
Backport issue(s) opened: #31144 (for 1.12). Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://golang.org/wiki/MinorReleases. |
kubernetes#77222 removed a workaround for a Go standard library bug (golang/go#31125) that was not fixed until that version, so we need to require it.
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
What did you expect to see?
Clients making requests to the proxy should see the headers from the backend no later than the FlushInterval
What did you see instead?
Clients making requests to the proxy receive no data until the first body chunk is written.
https://play.golang.org/p/Y8KQO8-57MR
The change in 5440bfc#diff-d863507a61be206d112f6e00e6d812a2L343 removed the goroutine that ensured the FlushInterval was honored while blocking in copyResponse, even prior to the first Write() call being encountered. The time.After() ticker it sets up doesn't get set up until the first Write() call is made.
The text was updated successfully, but these errors were encountered: