Skip to content

x/net/http2/hpack: "id (106) <= evictCount (117)" panic in headerFieldTable.idToIndex #69316

Description

@sprappcom

Go version

go 1.23

Output of go env in your module/workspace:

go env
GO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/root/.cache/go-build'
GOENV='/root/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE='*'
GOMODCACHE='/root/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/root/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.23.0'
GODEBUG=''
GOTELEMETRY='local'
GOTELEMETRYDIR='/root/.config/go/telemetry'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD=
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-build2845012808=/tmp/go-build -gno-record-gcc-switches'

What did you do?

warded-Proto:[https]]
2024/09/06 15:43:20 Sending request to backend
panic: id (106) <= evictCount (117)

goroutine 9201 [running]:
vendor/golang.org/x/net/http2/hpack.(*headerFieldTable).idToIndex(0xc0000bca00, 0xc00055dcb0?)
/usr/local/go/src/vendor/golang.org/x/net/http2/hpack/tables.go:118 +0xbd
vendor/golang.org/x/net/http2/hpack.(*headerFieldTable).search(0xc0000bca00, {{0x148ff02, 0x6}, {0xc000112ea0, 0xc1}, 0x0})
/usr/local/go/src/vendor/golang.org/x/net/http2/hpack/tables.go:105 +0xe5
vendor/golang.org/x/net/http2/hpack.(*Encoder).searchTable(0xc0000bca00, {{0x148ff02, 0x6}, {0xc000112ea0, 0xc1}, 0x0})
/usr/local/go/src/vendor/golang.org/x/net/http2/hpack/encode.go:97 +0x85
vendor/golang.org/x/net/http2/hpack.(*Encoder).WriteField(0xc0000bca00, {{0x148ff02, 0x6}, {0xc000112ea0, 0xc1}, 0x0})
/usr/local/go/src/vendor/golang.org/x/net/http2/hpack/encode.go:62 +0x145
net/http.(*http2ClientConn).writeHeader(0xc000956b60?, {0x148ff02?, 0x1454060?}, {0xc000112ea0?, 0xc000a63650?})
/usr/local/go/src/net/http/h2_bundle.go:9331 +0x148
net/http.(*http2ClientConn).encodeHeaders.func3({0xc000956b60?, 0xc000a63650?}, {0xc000112ea0, 0xc1})
/usr/local/go/src/net/http/h2_bundle.go:9265 +0x71
net/http.(*http2ClientConn).encodeHeaders.func1(0xc000933bb8)
/usr/local/go/src/net/http/h2_bundle.go:9226 +0x627
net/http.(*http2ClientConn).encodeHeaders(0xc0002eed80, 0xc0003a8500, 0x0, {0x0, 0x0}, 0x0)
/usr/local/go/src/net/http/h2_bundle.go:9258 +0x58c
net/http.(*http2clientStream).encodeAndWriteHeaders(0xc00072e300, 0xc0003a8500)
/usr/local/go/src/net/http/h2_bundle.go:8721 +0x2e9
net/http.(*http2clientStream).writeRequest(0xc00072e300, 0xc0003a8500, 0x0)
/usr/local/go/src/net/http/h2_bundle.go:8617 +0x535
net/http.(*http2clientStream).doRequest(0xc00072e300, 0x1856ea0?, 0xc000867068?)
/usr/local/go/src/net/http/h2_bundle.go:8551 +0x56
created by net/http.(*http2ClientConn).roundTrip in goroutine 9199
/usr/local/go/src/net/http/h2_bundle.go:8456 +0x3d8

What did you see happen?

some crawler online crash it.

What did you expect to see?

at least an error msg but not crash

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions