-
Notifications
You must be signed in to change notification settings - Fork 18k
crypto/tls: error communicating with OpenSSL 1.0.2k client with high parallel connections #68302
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
Comments
I think you'll need to provide a reproducer for the issue, right now it doesn't look very actionable. |
@seankhliao I am trying to build the enviornment to reproduce the issue. In my setup when I downgrade to golang 1.20, then I won't see the error |
Go servers are regularly used with more than 100 parallel connections, so we'll need more information to understand if there's an issue. Either a reproducer, or a PCAP with SSLKEYLOG, as well as the server code. If you think it might be the same as #63763, you can try adding a WrapTicket that returns differently sized fake tickets and check if that fixes it, but that doesn't explain why it would break based on the number of parallel connections. |
@FiloSottile And I have tried the fix mentioned in #63763. I just called return []byte{0}, nil in the WrapTicket function. This fixed the issue. Is there any timeline #63763 will be fixed ? |
When we configure TLS server with the following callback functions, then we can resolve the issue
Will these changes disable the new implementation of Wrapsession/Unwrapsession done in Golang 1.21? |
Duplicate of #63763 |
Go version
go version 1.21
Output of
go env
in your module/workspace: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.
What did you expect to see?
The Golang server should accept connections in parallel as it was working with Golang 1.18.
The text was updated successfully, but these errors were encountered: