Skip to content

crypto/tls: error communicating with OpenSSL 1.0.2k client with high parallel connections #68302

Closed as not planned
@hkishn

Description

@hkishn

Go version

go version 1.21

Output of go env in your module/workspace:

GO111MODULE='off'
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/test/.cache/go-build'
GOENV='/home/test/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS='-mod=vendor'
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/test/go/pkg/mod'
GONOPROXY='gitlab.protectv.local'
GONOSUMDB='gitlab.protectv.local'
GOOS='linux'
GOPATH='/home/test/go'
GOPRIVATE='gitlab.protectv.local'
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'
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-build4217941611=/tmp/go-build -gno-record-gcc-switches'

What did you do?

I have a Golang server that is accepting TLS connections from an OpenSSL client. The OpenSSL client is on version OpenSSL 1.0.2k.
The client tries to connect with the server in TLS mode in parallel threads.

What did you see happen?

If I increase the thread count to 100 and try to connect with the server simultaneously. The TLS connection breaks with the error from the client side with the error "Fatal, Description: Unexpected Message"

This use case works work with Golang 1.18. Moreover, if I reduce the thread count to 50, then no error comes.

I think something has changed in the new releases of the Golang which is causing errors if the client tries to connect with the Golang server simultaneously in a large number of threads.

dump

What did you expect to see?

The Golang server should accept connections in parallel as it was working with Golang 1.18.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeWaitingForInfoIssue is not actionable because of missing required information, which needs to be provided.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions