Closed clayreimann closed 8 years ago
Are you sure this is an issue? The request timeout accounts for the total request-response transaction, so it includes the tcp connect and the tls handshake (if a proper connection could not be fetched from the pool). If under load the one on them starts lagging, or if the connect and handshake timeouts are configured with values close to the request timeout, it's perfectly possible to get a request timeout first.
Perhaps the type of error I'm seeing is not wrong, it could just be a connect timeout, but the behavior of:
Server: Server Key Exchange
Client: RST
Server: FIN, ACK
Client: <ok lets wait for a while>
seems wrong. I would expect that when the server sends FIN the client's Future would immediately complete with error.
Client:
This is something new that you didn't mention in your initial report.
I would expect that ... the client's Future would immediately complete with error.
Isn't it how you get the TimeoutException
?
Could you please provide a reproducer?
When trying to connect over https to a remote server I observed the async-client sending an RST after the Server Key Exchange, which causes the server to send FIN, ACK. This ends up shutting down the session early
And I get the TimeoutException
later, not when async-http
aborts the handshake.
I'll work on a reproducer.
And I get the TimeoutException later, not when async-http aborts the handshake.
Ahhhhhhhhhh, ok! It looks like a Netty bug.
Yes, a reproducer would definitively help!
cc @normanmaurer
@clayreimann Ping. If no response, I'll have to close
@slandelle Haven't gotten time to dig into this and generate a reproduction case. I'll reopen when I get to it
OK. Thanks for the update.
When trying to connect over
https
to a remote server I observed the async-client sending an RST after the Server Key Exchange, which causes the server to send FIN, ACK. This ends up shutting down the session early (without the payload going across the wire). However instead of some sort of SSL exception I received the following exception:I'm interested in fixing this issue (both the misleading exception, and the handshake failure) so if someone could point help me figure out where to start I'd appreciate it.