go: net/http, x/net/http2: page fails to load with http2 server push due to underflow

What version of Go are you using (go version)?

$ go version
go version go1.21.3 linux/amd64

Does this issue reproduce with the latest release?

Yes

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/magicaltux/.cache/go-build'
GOENV='/home/magicaltux/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/magicaltux/go/pkg/mod'
GONOPROXY='git.atonline.com'
GONOSUMDB='git.atonline.com'
GOOS='linux'
GOPATH='/home/magicaltux/go'
GOPRIVATE='git.atonline.com'
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/pkg/main/dev-lang.go.dev.1.21.3.linux.amd64'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/pkg/main/dev-lang.go.dev.1.21.3.linux.amd64/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21.3'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/home/magicaltux/projects/platform-fe/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build1840746337=/tmp/go-build -gno-record-gcc-switches'

What did you do?

Running a http server using http.Pusher to push a specific resource to the brower.

We updated in emergency to go1.21.3 following the http2 fast reset issue, this caused all the sites we use to fail to load on firefox and safari until we commented the use of http.Pusher.

I think this looks suspiciously a lot similar to https://github.com/golang/go/issues/17777

What did you expect to see?

Page should work fine.

What did you see instead?

Only the initial page loads, and somehow firefox refuses to load the rest, either remaining blank or erroring with NS_BINDING_ABORTED. Firefox didn’t provide any useful information to debug this issue, but not using http.Pusher fixed it.

About this issue

  • Original URL
  • State: closed
  • Created 9 months ago
  • Reactions: 1
  • Comments: 19 (10 by maintainers)

Commits related to this issue

Most upvoted comments

Also needs a 1.20 backport.

@seankhliao could you please update the issue title to smth akin to net/http, x/net/http2: page fails to load with http2 server push due to underflow. Thanks