armeria icon indicating copy to clipboard operation
armeria copied to clipboard

Staring MockWebServerExtension fails with NotSslRecordException

Open laurit opened this issue 7 months ago • 4 comments

Using armeria 1.32.5 when unsafe is disabled (netty 4.1.121.Final disables unsafe usage by default on jdk24). The following

import com.linecorp.armeria.testing.junit5.server.mock.MockWebServerExtension;

public class Main {
    public static void main(String... args) {
        System.setProperty("io.netty.noUnsafe", "true");
        // unpooled allocator fixes the issue
        // System.setProperty("io.netty.allocator.type", "unpooled");
        new MockWebServerExtension().start();
    }
}

fails with

Exception in thread "main" java.lang.IllegalStateException: failed to validate SSL/TLS configuration: not an SSL/TLS record
	at com.linecorp.armeria.server.ServerSslContextUtil.validateSslContext(ServerSslContextUtil.java:88)
	at com.linecorp.armeria.server.VirtualHostBuilder.sslContext(VirtualHostBuilder.java:1572)
	at com.linecorp.armeria.server.VirtualHostBuilder.build(VirtualHostBuilder.java:1467)
	at com.linecorp.armeria.server.ServerBuilder.buildServerConfig(ServerBuilder.java:2310)
	at com.linecorp.armeria.server.ServerBuilder.build(ServerBuilder.java:2285)
	at com.linecorp.armeria.internal.testing.ServerRuleDelegate.start(ServerRuleDelegate.java:103)
	at com.linecorp.armeria.testing.junit5.server.ServerExtension.start(ServerExtension.java:123)
	at org.example.Main.main(Main.java:9)
Caused by: io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record
	at io.netty.handler.ssl.ReferenceCountedOpenSslEngine.unwrap(ReferenceCountedOpenSslEngine.java:1202)
	at io.netty.handler.ssl.ReferenceCountedOpenSslEngine.unwrap(ReferenceCountedOpenSslEngine.java:1441)
	at io.netty.handler.ssl.ReferenceCountedOpenSslEngine.unwrap(ReferenceCountedOpenSslEngine.java:1484)
	at com.linecorp.armeria.server.ServerSslContextUtil.unwrap(ServerSslContextUtil.java:113)
	at com.linecorp.armeria.server.ServerSslContextUtil.validateSslContext(ServerSslContextUtil.java:80)
	... 7 more

laurit avatar May 09 '25 12:05 laurit

@minwoox You are working on this? Otherwise I would be happy to take this issue

schiemon avatar May 12 '25 07:05 schiemon

@schiemon I haven't taken a look at it yet. Please go ahead. 🙇

minwoox avatar May 12 '25 07:05 minwoox

It is an issue inside Netty and it will be fixed in 4.2.2.Final.

EDIT: 4.1.122.Final also resolves this issue.

schiemon avatar May 12 '25 14:05 schiemon

@schiemon Glad to hear that. Thanks a lot for investigating this issue. 🙇

minwoox avatar May 13 '25 00:05 minwoox

@laurit I just ran the reproducer with 4.1.122.Final and in fact the issue is resolved 👍

schiemon avatar Jun 22 '25 11:06 schiemon