Go version
go version go1.23rc1 (all platforms)
Output of go env in your module/workspace:
GO111MODULE=''
GOARCH='arm64'
GOBIN=''
GOCACHE='/Users/marten/Library/Caches/go-build'
GOENV='/Users/marten/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/marten/src/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Users/marten/src/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/Users/marten/bin/go1.23ex'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/Users/marten/bin/go1.23ex/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.23rc1'
GODEBUG=''
GOTELEMETRY='local'
GOTELEMETRYDIR='/Users/marten/Library/Application Support/go/telemetry'
GCCGO='gccgo'
GOARM64='v8.0'
AR='ar'
CC='clang'
CXX='clang++'
CGO_ENABLED='1'
GOMOD='/Users/marten/src/go/src/github.com/quic-go/quic-go/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 -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/q0/b5ynf00142l7bl9sp8y098zr0000gn/T/go-build1369234025=/tmp/go-build -gno-record-gcc-switches -fno-common'
What did you do?
I ran quic-go's test suite using Go 1.23: quic-go/quic-go#4571.
What did you see happen?
Multiple tests related to QUIC session resumption are failing.
What did you expect to see?
As the QUIC API in crypto/tls is covered by Go's backwards compatibility guarantee, I expected the tests to pass.
#63691 introduced two new QUIC events: QUICResumeSession and QUICStoreSession. The usage of QUICStoreSession is gated by the QUICConfig.EnableStoreSessionEvent config option, but the usage of QUICResumeSession isn't.
This means that crypto/tls passes QUICResumeSession to quic-go, which doesn't know how to handle this event, and therefore aborts the handshake.
I believe this is an oversight, and that both events should have been gated by the config option. We might also want to rename the config flag to EnableSessionEvents to make it clear that it covers both QUICStoreSession and QUICResumeSession.
cc @neild @FiloSottile
Go version
go version go1.23rc1 (all platforms)
Output of
go envin your module/workspace:What did you do?
I ran quic-go's test suite using Go 1.23: quic-go/quic-go#4571.
What did you see happen?
Multiple tests related to QUIC session resumption are failing.
What did you expect to see?
As the QUIC API in crypto/tls is covered by Go's backwards compatibility guarantee, I expected the tests to pass.
#63691 introduced two new QUIC events:
QUICResumeSessionandQUICStoreSession. The usage ofQUICStoreSessionis gated by theQUICConfig.EnableStoreSessionEventconfig option, but the usage ofQUICResumeSessionisn't.This means that crypto/tls passes
QUICResumeSessionto quic-go, which doesn't know how to handle this event, and therefore aborts the handshake.I believe this is an oversight, and that both events should have been gated by the config option. We might also want to rename the config flag to
EnableSessionEventsto make it clear that it covers bothQUICStoreSessionandQUICResumeSession.cc @neild @FiloSottile