Skip to content

panic: id <= evictCount on mp-quic #65797

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

Closed
Riiber0 opened this issue Feb 19, 2024 · 2 comments
Closed

panic: id <= evictCount on mp-quic #65797

Riiber0 opened this issue Feb 19, 2024 · 2 comments

Comments

@Riiber0
Copy link

Riiber0 commented Feb 19, 2024

Go version

go 1.21.7

Output of go env in your module/workspace:

GO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/vagrant/.cache/go-build'
GOENV='/home/vagrant/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/vagrant/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/vagrant/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.21.7'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/dev/null'
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 -fdebug-prefix-map=/tmp/go-build1567244879=/tmp/go-build -gno-record-gcc-switches'

What did you do?

I created two host inside mininet, one client and one server. The server is running caddy server with mp-quic options(-quic -mp) and the client is a dash client making https/2.0 request via mp-quic. every time i run the program this error happens.

The code I crated is base on mpquicScheduler(https://github.com/deradev/mpquicScheduler) adapted for 360 videos.

PS: sorry for the bad english i am not a native speaker.

What did you see happen?

panic: id (35) <= evictCount (160)

goroutine 17 [running, locked to thread]:
golang.org/x/net/http2/hpack.(*headerFieldTable).idToIndex(0xc000198400, 0xc0001869f0?)
        /home/vagrant/go/pkg/mod/golang.org/x/net@v0.20.0/http2/hpack/tables.go:118 +0xce
golang.org/x/net/http2/hpack.(*headerFieldTable).search(0xc000198400, {{0x7f9eb5eeea25, 0xa}, {0x7f9e4c246b00, 0xd}, 0x0})
        /home/vagrant/go/pkg/mod/golang.org/x/net@v0.20.0/http2/hpack/tables.go:105 +0xe5
golang.org/x/net/http2/hpack.(*Encoder).searchTable(0xc000198400, {{0x7f9eb5eeea25, 0xa}, {0x7f9e4c246b00, 0xd}, 0x0})
        /home/vagrant/go/pkg/mod/golang.org/x/net@v0.20.0/http2/hpack/encode.go:97 +0x88
golang.org/x/net/http2/hpack.(*Encoder).WriteField(0xc000198400, {{0x7f9eb5eeea25, 0xa}, {0x7f9e4c246b00, 0xd}, 0x0})
        /home/vagrant/go/pkg/mod/golang.org/x/net@v0.20.0/http2/hpack/encode.go:62 +0x14a
github.com/lucas-clemente/quic-go/h2quic.(*requestWriter).writeHeader(0xc0001925a0, {0x7f9eb5eeea25, 0xa}, {0x7f9e4c246b00, 0xd})
        /home/vagrant/workspace/Dash360/src/h2quic/request_writer.go:161 +0x114
github.com/lucas-clemente/quic-go/h2quic.(*requestWriter).encodeHeaders(0xc0001925a0, 0xc0001f6900, 0x1, {0x0, 0x0}, 0x0)
        /home/vagrant/workspace/Dash360/src/h2quic/request_writer.go:105 +0x465
github.com/lucas-clemente/quic-go/h2quic.(*requestWriter).WriteRequest(0xc0001925a0, 0x7f9eb5eed7a7?, 0x191, 0x1, 0x7f?)
        /home/vagrant/workspace/Dash360/src/h2quic/request_writer.go:46 +0x105
github.com/lucas-clemente/quic-go/h2quic.(*client).RoundTrip(0xc00018a000, 0xc0001f6900)
        /home/vagrant/workspace/Dash360/src/h2quic/client.go:184 +0x385
github.com/lucas-clemente/quic-go/h2quic.(*RoundTripper).RoundTripOpt(0xc16d054a6f3b63f3?, 0xc0001f6900, {0x20?})
        /home/vagrant/workspace/Dash360/src/h2quic/roundtrip.go:102 +0x3d7
github.com/lucas-clemente/quic-go/h2quic.(*RoundTripper).RoundTrip(0xc0001f6900?, 0x7f9eb6212f98?)
        /home/vagrant/workspace/Dash360/src/h2quic/roundtrip.go:107 +0x1b
net/http.send(0xc0001f6800, {0x7f9eb6212f98, 0xc000090000}, {0x7f9eb62063c0?, 0x7f9eb5cbe601?, 0x7f9eb6419420?})
        /usr/local/go/src/net/http/client.go:252 +0x5d8
net/http.(*Client).send(0xc000090030, 0xc0001f6800, {0x203000?, 0xc0001f6800?, 0x7f9eb6419420?})
        /usr/local/go/src/net/http/client.go:176 +0x9b
net/http.(*Client).do(0xc000090030, 0xc0001f6800)
        /usr/local/go/src/net/http/client.go:725 +0x8f5
net/http.(*Client).Do(...)
        /usr/local/go/src/net/http/client.go:593
net/http.(*Client).Get(0xc0003aa6c0?, {0x7f9e4c246af8?, 0x7f9eb4736880?})
        /usr/local/go/src/net/http/client.go:480 +0x6a
main.DownloadSegment({0x7f9e4c246af8, 0x30})
        /home/vagrant/workspace/Dash360/proxy_module/proxy_module.go:88 +0x75
Aborted (core dumped)

What did you expect to see?

no error

@seankhliao
Copy link
Member

sounds like it should be reported to github.com/lucas-clemente/quic-go

@seankhliao seankhliao closed this as not planned Won't fix, can't repro, duplicate, stale Feb 19, 2024
@DiggidyDave
Copy link

FYI I'm getting this same sporadic panic using github.com/imroc/req.

goroutine 270027327 [running]:
golang.org/x/net/http2/hpack.(*headerFieldTable).idToIndex(0xc002e11b80, 0xc0035c5fb0?)
	/go/pkg/mod/golang.org/x/net@v0.20.0/http2/hpack/tables.go:118 +0xbd
golang.org/x/net/http2/hpack.(*headerFieldTable).search(0xc002e11b80, {{0xc0085f2190, 0xc}, {0xc0010a1710, 0x24}, 0x0})
	/go/pkg/mod/golang.org/x/net@v0.20.0/http2/hpack/tables.go:105 +0xd3
golang.org/x/net/http2/hpack.(*Encoder).searchTable(0xc002e11b80, {{0xc0085f2190, 0xc}, {0xc0010a1710, 0x24}, 0x0})
	/go/pkg/mod/golang.org/x/net@v0.20.0/http2/hpack/encode.go:97 +0x85
golang.org/x/net/http2/hpack.(*Encoder).WriteField(0xc002e11b80, {{0xc0085f2190, 0xc}, {0xc0010a1710, 0x24}, 0x0})
	/go/pkg/mod/golang.org/x/net@v0.20.0/http2/hpack/encode.go:62 +0x145
github.com/imroc/req/v3/internal/http2.(*ClientConn).writeHeader(0xc9b78d?, {0xc0085f2190?, 0xc001f186f0?}, {0xc0010a1710?, 0xc?})
	/go/pkg/mod/github.com/imroc/req/v3@v3.41.11/internal/http2/transport.go:2093 +0x18b
github.com/imroc/req/v3/internal/http2.(*ClientConn).encodeHeaders.func4({0x29a4b38?, 0xc0034ac120?}, {0xc0010a1710, 0x24})
	/go/pkg/mod/github.com/imroc/req/v3@v3.41.11/internal/http2/transport.go:2013 +0x6b
github.com/imroc/req/v3/internal/http2.(*ClientConn).encodeHeaders.func1.4({0x29a4b38, 0xc}, {0xc0034ac110?, 0x1, 0xeddf12814?})
	/go/pkg/mod/github.com/imroc/req/v3@v3.41.11/internal/http2/transport.go:1893 +0x49
github.com/imroc/req/v3/internal/http2.(*ClientConn).encodeHeaders.func1(0xc002771af8)
	/go/pkg/mod/github.com/imroc/req/v3@v3.41.11/internal/http2/transport.go:1948 +0xa97
github.com/imroc/req/v3/internal/http2.(*ClientConn).encodeHeaders(0xc0002aa300, 0xc0016ed800, 0x1, {0x0, 0x0}, 0x82, {0x43b8a20, 0x0, 0xe8549dfd?})
	/go/pkg/mod/github.com/imroc/req/v3@v3.41.11/internal/http2/transport.go:2006 +0x6be
github.com/imroc/req/v3/internal/http2.(*clientStream).encodeAndWriteHeaders(0xc001e18a80, 0xc0016ed800, {0x43b8a20, 0x0, 0x0})
	/go/pkg/mod/github.com/imroc/req/v3@v3.41.11/internal/http2/transport.go:1431 +0x354
github.com/imroc/req/v3/internal/http2.(*clientStream).writeRequest(0xc001e18a80, 0xc0016ed800)
	/go/pkg/mod/github.com/imroc/req/v3@v3.41.11/internal/http2/transport.go:1318 +0x625
github.com/imroc/req/v3/internal/http2.(*clientStream).doRequest(0xc0004451a0?, 0x0?)
	/go/pkg/mod/github.com/imroc/req/v3@v3.41.11/internal/http2/transport.go:1231 +0x18
created by github.com/imroc/req/v3/internal/http2.(*ClientConn).RoundTrip in goroutine 268610762

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants