Open
Description
Describe the bug
I want my Ktor http server to serve the MCP server under a specific URL. I have chosen the example route myRoute
since it was in the example in:
Line 152 in 9f00f22
To Reproduce
Steps to reproduce the behavior, alternative 1:
- Clone https://github.com/schedin/mcp-ktor-route-problem/
- Run
gradlew run
in one terminal - Run
curl --include --max-time 1 http://localhost:8080/myRoute
in another terminal
Steps to reproduce the behavior, alternative 2:
- Copy the code from the README.md file:
Lines 144 to 169 in 9f00f22
- Add lines for a simple Netty based embedded server and fix imports/dependencies and a run configuration.
- Run
gradlew run
in one terminal - Run
curl --include --max-time 1 http://localhost:8080/myRoute
in another terminal
Actual behavior
C:\git\mcp-ktor-route-problem>curl --include --max-time 1 http://localhost:8080/myRoute
HTTP/1.1 404 Not Found
Content-Length: 0
Expected behavior
The request should start a stream from the server and then break after the curl timeout of 1 seconds (from the command line). It should look close to this:
HTTP/1.1 200 OK
Content-Type: text/event-stream
Cache-Control: no-store
Connection: keep-alive
X-Accel-Buffering: no
transfer-encoding: chunked
data: ?sessionId=69a80715-2ecb-4dab-9c40-642f7129cff9
event: endpoint
curl: (28) Operation timed out after 1014 milliseconds with 74 bytes received
I can get the expected output if I modify the curl command and use /
instead of /myRoute
.
Logs
C:\git\mcp-ktor-route-problem>gradlew run
> Task :run
2025-05-03 20:23:20.936 [main] INFO io.ktor.server.Application - Autoreload is disabled because the development mode is off.
2025-05-03 20:23:20.993 [main] INFO io.ktor.server.Application - Application started in 0.257 seconds.
2025-05-03 20:23:21.009 [main] DEBUG i.n.u.i.l.InternalLoggerFactory - Using SLF4J as the default logging framework
2025-05-03 20:23:21.028 [main] DEBUG i.n.util.internal.PlatformDependent0 - -Dio.netty.noUnsafe: false
2025-05-03 20:23:21.029 [main] DEBUG i.n.util.internal.PlatformDependent0 - Java version: 17
2025-05-03 20:23:21.029 [main] DEBUG i.n.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
2025-05-03 20:23:21.030 [main] DEBUG i.n.util.internal.PlatformDependent0 - sun.misc.Unsafe base methods: all available
2025-05-03 20:23:21.030 [main] DEBUG i.n.util.internal.PlatformDependent0 - sun.misc.Unsafe.storeFence: available
2025-05-03 20:23:21.030 [main] DEBUG i.n.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
2025-05-03 20:23:21.031 [main] DEBUG i.n.util.internal.PlatformDependent0 - direct buffer constructor: unavailable
java.lang.UnsupportedOperationException: Reflective setAccessible(true) disabled
at io.netty.util.internal.ReflectionUtil.trySetAccessible(ReflectionUtil.java:31)
at io.netty.util.internal.PlatformDependent0$5.run(PlatformDependent0.java:332)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at io.netty.util.internal.PlatformDependent0.<clinit>(PlatformDependent0.java:325)
at io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:334)
at io.netty.util.internal.PlatformDependent.<clinit>(PlatformDependent.java:90)
at io.netty.util.internal.ClassInitializerUtil.tryLoadClasses(ClassInitializerUtil.java:32)
at io.netty.channel.kqueue.Native.<clinit>(Native.java:65)
at io.netty.channel.kqueue.KQueue.<clinit>(KQueue.java:36)
at io.ktor.server.netty.NettyApplicationEngineKt.getChannelClass(NettyApplicationEngine.kt:312)
at io.ktor.server.netty.EventLoopGroupProxy$Companion.create(EventLoopGroupProxy.kt:32)
at io.ktor.server.netty.NettyApplicationEngine.connectionEventGroup_delegate$lambda$0(NettyApplicationEngine.kt:156)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
at io.ktor.server.netty.NettyApplicationEngine.getConnectionEventGroup(NettyApplicationEngine.kt:155)
at io.ktor.server.netty.NettyApplicationEngine.createBootstrap(NettyApplicationEngine.kt:211)
at io.ktor.server.netty.NettyApplicationEngine.bootstraps_delegate$lambda$7(NettyApplicationEngine.kt:200)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
at io.ktor.server.netty.NettyApplicationEngine.getBootstraps$ktor_server_netty(NettyApplicationEngine.kt:199)
at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:250)
at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:39)
at io.ktor.server.engine.EmbeddedServer.start(EmbeddedServerJvm.kt:323)
at McpKtorRouteProblemKt.main(McpKtorRouteProblem.kt:14)
at McpKtorRouteProblemKt.main(McpKtorRouteProblem.kt)
2025-05-03 20:23:21.032 [main] DEBUG i.n.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: available, true
2025-05-03 20:23:21.033 [main] DEBUG i.n.util.internal.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): unavailable
java.lang.IllegalAccessException: class io.netty.util.internal.PlatformDependent0$7 cannot access class jdk.internal.misc.Unsafe (in module java.base) because module java.base does not export jdk.internal.misc to unnamed module @67b467e9
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674)
at java.base/java.lang.reflect.Method.invoke(Method.java:561)
at io.netty.util.internal.PlatformDependent0$7.run(PlatformDependent0.java:468)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
at io.netty.util.internal.PlatformDependent0.<clinit>(PlatformDependent0.java:459)
at io.netty.util.internal.PlatformDependent.isAndroid(PlatformDependent.java:334)
at io.netty.util.internal.PlatformDependent.<clinit>(PlatformDependent.java:90)
at io.netty.util.internal.ClassInitializerUtil.tryLoadClasses(ClassInitializerUtil.java:32)
at io.netty.channel.kqueue.Native.<clinit>(Native.java:65)
at io.netty.channel.kqueue.KQueue.<clinit>(KQueue.java:36)
at io.ktor.server.netty.NettyApplicationEngineKt.getChannelClass(NettyApplicationEngine.kt:312)
at io.ktor.server.netty.EventLoopGroupProxy$Companion.create(EventLoopGroupProxy.kt:32)
at io.ktor.server.netty.NettyApplicationEngine.connectionEventGroup_delegate$lambda$0(NettyApplicationEngine.kt:156)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
at io.ktor.server.netty.NettyApplicationEngine.getConnectionEventGroup(NettyApplicationEngine.kt:155)
at io.ktor.server.netty.NettyApplicationEngine.createBootstrap(NettyApplicationEngine.kt:211)
at io.ktor.server.netty.NettyApplicationEngine.bootstraps_delegate$lambda$7(NettyApplicationEngine.kt:200)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:83)
at io.ktor.server.netty.NettyApplicationEngine.getBootstraps$ktor_server_netty(NettyApplicationEngine.kt:199)
at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:250)
at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:39)
at io.ktor.server.engine.EmbeddedServer.start(EmbeddedServerJvm.kt:323)
at McpKtorRouteProblemKt.main(McpKtorRouteProblem.kt:14)
at McpKtorRouteProblemKt.main(McpKtorRouteProblem.kt)
2025-05-03 20:23:21.033 [main] DEBUG i.n.util.internal.PlatformDependent0 - java.nio.DirectByteBuffer.<init>(long, {int,long}): unavailable
2025-05-03 20:23:21.033 [main] DEBUG i.n.util.internal.PlatformDependent - sun.misc.Unsafe: available
2025-05-03 20:23:21.034 [main] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.tmpdir: C:\Users\Lennart\AppData\Local\Temp (java.io.tmpdir)
2025-05-03 20:23:21.034 [main] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
2025-05-03 20:23:21.034 [main] DEBUG i.n.util.internal.PlatformDependent - Platform: Windows
2025-05-03 20:23:21.034 [main] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.maxDirectMemory: -1 bytes
2025-05-03 20:23:21.035 [main] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: -1
2025-05-03 20:23:21.035 [main] DEBUG io.netty.util.internal.CleanerJava9 - java.nio.ByteBuffer.cleaner(): available
2025-05-03 20:23:21.035 [main] DEBUG i.n.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
2025-05-03 20:23:21.116 [main] DEBUG i.n.c.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 64
2025-05-03 20:23:21.121 [main] DEBUG i.n.u.concurrent.GlobalEventExecutor - -Dio.netty.globalEventExecutor.quietPeriodSeconds: 1
2025-05-03 20:23:21.124 [main] DEBUG i.n.u.i.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
2025-05-03 20:23:21.124 [main] DEBUG i.n.u.i.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
2025-05-03 20:23:21.128 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.noKeySetOptimization: false
2025-05-03 20:23:21.128 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
2025-05-03 20:23:21.132 [main] DEBUG i.n.util.internal.PlatformDependent - org.jctools-core.MpscChunkedArrayQueue: available
2025-05-03 20:23:21.135 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@47d93e0d
2025-05-03 20:23:21.137 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@4d0402b
2025-05-03 20:23:21.137 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@2fa7ae9
2025-05-03 20:23:21.138 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@7577b641
2025-05-03 20:23:21.139 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@3704122f
2025-05-03 20:23:21.140 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@3153ddfc
2025-05-03 20:23:21.141 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@60afd40d
2025-05-03 20:23:21.142 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@28a2a3e7
2025-05-03 20:23:21.143 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@3f2049b6
2025-05-03 20:23:21.144 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@10b3df93
2025-05-03 20:23:21.144 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@ea27e34
2025-05-03 20:23:21.145 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@33a2499c
2025-05-03 20:23:21.146 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@e72dba7
2025-05-03 20:23:21.147 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@33c2bd
2025-05-03 20:23:21.147 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@1dfd5f51
2025-05-03 20:23:21.148 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@3c321bdb
2025-05-03 20:23:21.149 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@24855019
2025-05-03 20:23:21.150 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@6f6a7463
2025-05-03 20:23:21.151 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@1bdaa23d
2025-05-03 20:23:21.152 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@79f227a9
2025-05-03 20:23:21.152 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@6ca320ab
2025-05-03 20:23:21.153 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@50d68830
2025-05-03 20:23:21.154 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@1e53135d
2025-05-03 20:23:21.155 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@7674a051
2025-05-03 20:23:21.155 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@3a7704c
2025-05-03 20:23:21.156 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@6754ef00
2025-05-03 20:23:21.157 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@619bd14c
2025-05-03 20:23:21.158 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@323e8306
2025-05-03 20:23:21.158 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@a23a01d
2025-05-03 20:23:21.159 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@4acf72b6
2025-05-03 20:23:21.160 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@7561db12
2025-05-03 20:23:21.161 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@3301500b
2025-05-03 20:23:21.161 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@24b52d3e
2025-05-03 20:23:21.162 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@15deb1dc
2025-05-03 20:23:21.166 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@467f77a5
2025-05-03 20:23:21.167 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@1bb9aa43
2025-05-03 20:23:21.168 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@420bc288
2025-05-03 20:23:21.169 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@df5f5c0
2025-05-03 20:23:21.169 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@308a6984
2025-05-03 20:23:21.170 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@66b72664
2025-05-03 20:23:21.171 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@7a34b7b8
2025-05-03 20:23:21.172 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@58cd06cb
2025-05-03 20:23:21.172 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@3be8821f
2025-05-03 20:23:21.173 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@64b31700
2025-05-03 20:23:21.174 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@3b65e559
2025-05-03 20:23:21.175 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@bae47a0
2025-05-03 20:23:21.175 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@74a9c4b0
2025-05-03 20:23:21.176 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@85ec632
2025-05-03 20:23:21.177 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@1c05a54d
2025-05-03 20:23:21.178 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@65ef722a
2025-05-03 20:23:21.178 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@5fd9b663
2025-05-03 20:23:21.179 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@214894fc
2025-05-03 20:23:21.180 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@10567255
2025-05-03 20:23:21.180 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@e362c57
2025-05-03 20:23:21.181 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@1c4ee95c
2025-05-03 20:23:21.182 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@79c4715d
2025-05-03 20:23:21.182 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@5aa360ea
2025-05-03 20:23:21.183 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@6548bb7d
2025-05-03 20:23:21.184 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@e27ba81
2025-05-03 20:23:21.185 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@54336c81
2025-05-03 20:23:21.185 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@1556f2dd
2025-05-03 20:23:21.186 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@35e52059
2025-05-03 20:23:21.187 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@62577d6
2025-05-03 20:23:21.188 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@49bd54f7
2025-05-03 20:23:21.188 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@6b5f8707
2025-05-03 20:23:21.189 [main] TRACE io.netty.channel.nio.NioEventLoop - instrumented a special java.util.Set into: sun.nio.ch.WEPollSelectorImpl@772485dd
2025-05-03 20:23:21.195 [main] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.processId: 31088 (auto-detected)
2025-05-03 20:23:21.197 [main] DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv4Stack: false
2025-05-03 20:23:21.197 [main] DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv6Addresses: false
2025-05-03 20:23:21.206 [main] DEBUG i.netty.util.NetUtilInitializations - Loopback interface: lo (Software Loopback Interface 1, 127.0.0.1)
2025-05-03 20:23:21.207 [main] DEBUG io.netty.util.NetUtil - Failed to get SOMAXCONN from sysctl and file \proc\sys\net\core\somaxconn. Default: 200
2025-05-03 20:23:21.253 [main] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.machineId: f0:2f:74:ff:fe:2e:d7:1a (auto-detected)
2025-05-03 20:23:21.260 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.level: simple
2025-05-03 20:23:21.260 [main] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.targetRecords: 4
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numHeapArenas: 64
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.numDirectArenas: 64
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.pageSize: 8192
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxOrder: 9
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.chunkSize: 4194304
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.smallCacheSize: 256
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.normalCacheSize: 64
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedBufferCapacity: 32768
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimInterval: 8192
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.cacheTrimIntervalMillis: 0
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.useCacheForAllThreads: false
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.maxCachedByteBuffersPerChunk: 1023
2025-05-03 20:23:21.275 [main] DEBUG i.n.buffer.PooledByteBufAllocator - -Dio.netty.allocator.disableCacheFinalizersForFastThreadLocalThreads: false
2025-05-03 20:23:21.282 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.allocator.type: pooled
2025-05-03 20:23:21.282 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.threadLocalDirectBufferSize: 0
2025-05-03 20:23:21.282 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.maxThreadLocalCharBufferSize: 16384
2025-05-03 20:23:21.283 [main] DEBUG i.n.b.ChannelInitializerExtensions - -Dio.netty.bootstrap.extensions: null
2025-05-03 20:23:21.292 [DefaultDispatcher-worker-1] INFO io.ktor.server.Application - Responding at http://127.0.0.1:8080
2025-05-03 20:23:25.808 [eventLoopGroupProxy-3-1] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkAccessible: true
2025-05-03 20:23:25.808 [eventLoopGroupProxy-3-1] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkBounds: true
2025-05-03 20:23:25.808 [eventLoopGroupProxy-3-1] DEBUG i.n.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@623cd987
2025-05-03 20:23:25.838 [eventLoopGroupProxy-3-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxCapacityPerThread: 4096
2025-05-03 20:23:25.838 [eventLoopGroupProxy-3-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
2025-05-03 20:23:25.838 [eventLoopGroupProxy-3-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.chunkSize: 32
2025-05-03 20:23:25.838 [eventLoopGroupProxy-3-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.blocking: false
2025-05-03 20:23:25.839 [eventLoopGroupProxy-3-1] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.batchFastThreadLocalOnly: true
2025-05-03 20:23:25.891 [eventLoopGroupProxy-4-1] TRACE io.ktor.server.routing.Routing - Trace for [myRoute]
/, segment:0 -> SUCCESS @ /
/myRoute, segment:1 -> SUCCESS @ /myRoute
/(method:POST), segment:0 -> FAILURE "Selector didn't match" @ /(method:POST)
Matched routes:
No results
Routing resolve result:
FAILURE "No matched subtrees found" @ /
<==========---> 83% EXECUTING [38s]
> :run