Skip to content

javax.net.ssl.SSLException: SSLEngine closed already #1645

Closed
@unoexperto

Description

@unoexperto

Hi @slandelle. I've been haunted by this exception for couple years at least and after preliminary investigation I have feeling that AHC uses single SSLEngine for all instances of DefaultAsyncHttpClient class. Which means as soon as some bad domain botches it http clients of entire app stop working.

Exception is thrown in io.netty.handler.ssl.SslHandler.wrap(ChannelHandlerContext ctx, boolean inUnwrap) in line

if (result.getStatus() == Status.CLOSED) {
    buf.release();
    buf = null;
    promise.tryFailure(SSLENGINE_CLOSED);
    promise = null;
    // SSLEngine has been closed already.
    // Any further write attempts should be denied.
    pendingUnencryptedWrites.releaseAndFailAll(ctx, SSLENGINE_CLOSED);
    return;
}

And the moment it happens it's pretty much game over for the client. All subsequent attempts to send request simply hang.

Could you please clarify how it works currently and what to do?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions