Skip to content
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

Requests and responses seem not to passed correctly when building with GraalVM #2064

Open
k-ogawa-1988 opened this issue Dec 19, 2024 · 0 comments
Labels
type: bug Something isn't working

Comments

@k-ogawa-1988
Copy link

k-ogawa-1988 commented Dec 19, 2024

Library Version

graphql-kotlin-spring-server:8.2.1

OS: macOS Sonoma (Apple M1 Pro)
JVM: graalvm-ce-21

Describe the bug

On Spring Boot WebFlux project, GraphQL-Kotlin doesn't receive POST request and send response correctly.

When running example project (attached git repository below) on JVM, it works correctly.
On the other hand, native-compiled binaries doesn't work well.

I'm following this documentation for native build.

To Reproduce

Clone the example project.

Run ./gradlew nativeCompile.

Run ./build/native/nativeCompile/application

Run query below to http://localhost:8080/graphql

query Example{
  listBooks {
    title
  }
}

Trace logs output:

2024-12-31T18:24:16.782+07:00 DEBUG 57461 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [282e45cb, L:/127.0.0.1:8080 - R:/127.0.0.1:56835] Increasing pending responses, now 1
2024-12-31T18:24:16.782+07:00 DEBUG 57461 --- [ctor-http-nio-2] reactor.netty.http.server.HttpServer     : [282e45cb-2, L:/127.0.0.1:8080 - R:/127.0.0.1:56835] Handler is being applied: org.springframework.http.server.reactive.ReactorHttpHandlerAdapter@4066a35e
2024-12-31T18:24:16.782+07:00 TRACE 57461 --- [ctor-http-nio-2] o.s.w.s.adapter.HttpWebHandlerAdapter    : [282e45cb-2] HTTP POST "/graphql", headers={masked}
2024-12-31T18:24:16.782+07:00 TRACE 57461 --- [ctor-http-nio-2] o.s.w.r.f.server.RequestPredicates       : Method "POST" matches against value "POST"
2024-12-31T18:24:16.782+07:00 TRACE 57461 --- [ctor-http-nio-2] o.s.w.r.f.server.RequestPredicates       : Pattern "/graphql" matches against value "/graphql"
2024-12-31T18:24:16.782+07:00 TRACE 57461 --- [ctor-http-nio-2] o.s.w.r.function.server.RouterFunctions  : [282e45cb-2] Matched (((POST && /graphql) || (GET && /graphql)) && !org.springframework.web.reactive.function.server.CoRouterFunctionDsl$$Lambda$29ea120da357451ff42953e32557fe28557e30a8@27aaf9c1)
2024-12-31T18:24:16.782+07:00 DEBUG 57461 --- [ctor-http-nio-2] o.s.w.r.f.s.s.RouterFunctionMapping      : [282e45cb-2] Mapped to org.springframework.web.reactive.function.server.CoRouterFunctionDsl$CoroutineContextAwareHandlerFunction@2dd03385
2024-12-31T18:24:16.783+07:00 DEBUG 57461 --- [ctor-http-nio-2] o.s.http.codec.json.Jackson2JsonDecoder  : Failed to evaluate Jackson deserialization for type [[simple type, class com.expediagroup.graphql.server.types.GraphQLServerRequest]]

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Class com.expediagroup.graphql.server.types.GraphQLServerRequestDeserializer has no default (no arg) constructor
        at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1888)
        at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:321)
        at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:284)
        at com.fasterxml.jackson.databind.deser.DeserializerCache.hasValueDeserializerFor(DeserializerCache.java:224)
        at com.fasterxml.jackson.databind.DeserializationContext.hasValueDeserializerFor(DeserializationContext.java:614)
        at com.fasterxml.jackson.databind.ObjectMapper.canDeserialize(ObjectMapper.java:3699)
        at org.springframework.http.codec.json.AbstractJackson2Decoder.canDecode(AbstractJackson2Decoder.java:116)
        at org.springframework.http.codec.DecoderHttpMessageReader.canRead(DecoderHttpMessageReader.java:97)
        at org.springframework.web.reactive.function.BodyExtractors.readWithMessageReaders(BodyExtractors.java:198)
        at org.springframework.web.reactive.function.BodyExtractors.lambda$toMono$2(BodyExtractors.java:84)
        at org.springframework.web.reactive.function.server.DefaultServerRequest.bodyInternal(DefaultServerRequest.java:183)
        at org.springframework.web.reactive.function.server.DefaultServerRequest.body(DefaultServerRequest.java:173)
        at org.springframework.web.reactive.function.server.DefaultServerRequest.bodyToMono(DefaultServerRequest.java:209)
        at com.expediagroup.graphql.server.spring.execution.SpringGraphQLRequestParser.getRequestFromPost(SpringGraphQLRequestParser.kt:72)
        at com.expediagroup.graphql.server.spring.execution.SpringGraphQLRequestParser.parseRequest$suspendImpl(SpringGraphQLRequestParser.kt:47)
        at com.expediagroup.graphql.server.spring.execution.SpringGraphQLRequestParser.parseRequest(SpringGraphQLRequestParser.kt)
        at com.expediagroup.graphql.server.spring.execution.SpringGraphQLRequestParser.parseRequest(SpringGraphQLRequestParser.kt:39)
        at com.expediagroup.graphql.server.execution.GraphQLServer$execute$2.invokeSuspend(GraphQLServer.kt:50)
        at com.expediagroup.graphql.server.execution.GraphQLServer$execute$2.invoke(GraphQLServer.kt)
        at com.expediagroup.graphql.server.execution.GraphQLServer$execute$2.invoke(GraphQLServer.kt)
        at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
        at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
        at com.expediagroup.graphql.server.execution.GraphQLServer.execute$suspendImpl(GraphQLServer.kt:49)
        at com.expediagroup.graphql.server.execution.GraphQLServer.execute(GraphQLServer.kt)
        at com.expediagroup.graphql.server.spring.GraphQLRoutesConfiguration$graphQLRoutes$1$1.invokeSuspend(GraphQLRoutesConfiguration.kt:48)
        at com.expediagroup.graphql.server.spring.GraphQLRoutesConfiguration$graphQLRoutes$1$1.invoke(GraphQLRoutesConfiguration.kt)
        at com.expediagroup.graphql.server.spring.GraphQLRoutesConfiguration$graphQLRoutes$1$1.invoke(GraphQLRoutesConfiguration.kt)
        at org.springframework.web.reactive.function.server.CoRouterFunctionDsl$asHandlerFunction$1.invokeSuspend(CoRouterFunctionDsl.kt:736)
        at org.springframework.web.reactive.function.server.CoRouterFunctionDsl$asHandlerFunction$1.invoke(CoRouterFunctionDsl.kt)
        at org.springframework.web.reactive.function.server.CoRouterFunctionDsl$asHandlerFunction$1.invoke(CoRouterFunctionDsl.kt)
        at org.springframework.web.reactive.function.server.CoRouterFunctionDsl$CoroutineContextAwareHandlerFunction$handle$1.invokeSuspend(CoRouterFunctionDsl.kt:817)
        at org.springframework.web.reactive.function.server.CoRouterFunctionDsl$CoroutineContextAwareHandlerFunction$handle$1.invoke(CoRouterFunctionDsl.kt)
        at org.springframework.web.reactive.function.server.CoRouterFunctionDsl$CoroutineContextAwareHandlerFunction$handle$1.invoke(CoRouterFunctionDsl.kt)
        at org.springframework.web.reactive.function.server.CoRouterFunctionDsl$asMono$1.invokeSuspend(CoRouterFunctionDsl.kt:730)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:367)
        at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:30)
        at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default(Cancellable.kt:25)
        at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:110)
        at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
        at kotlinx.coroutines.reactor.MonoKt.monoInternal$lambda$2(Mono.kt:92)
        at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:61)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165)
        at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
        at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74)
        at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:259)
        at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:865)
        at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200)
        at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
        at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
        at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:202)
        at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
        at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
        at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:202)
        at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:259)
        at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:865)
        at reactor.core.publisher.FluxConcatMap$WeakScalarSubscription.request(FluxConcatMap.java:480)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2331)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:339)
        at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108)
        at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:278)
        at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108)
        at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164)
        at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:278)
        at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108)
        at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.request(FluxPeek.java:138)
        at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2331)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:339)
        at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241)
        at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:164)
        at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201)
        at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265)
        at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
        at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55)
        at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1176)
        at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:710)
        at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481)
        at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:652)
        at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:240)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333)
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:455)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
        at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
        at [email protected]/java.lang.Thread.run(Thread.java:1583)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:832)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:211)

2024-12-31T18:24:16.788+07:00 TRACE 57461 --- [ctor-http-nio-2] o.s.w.s.adapter.HttpWebHandlerAdapter    : [282e45cb-2] Completed 400 BAD_REQUEST, headers={masked}
2024-12-31T18:24:16.788+07:00 TRACE 57461 --- [ctor-http-nio-2] o.s.h.s.r.ReactorHttpHandlerAdapter      : [282e45cb-2, L:/127.0.0.1:8080 - R:/127.0.0.1:56835] Handling completed
2024-12-31T18:24:16.788+07:00 DEBUG 57461 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [282e45cb-2, L:/127.0.0.1:8080 - R:/127.0.0.1:56835] Last HTTP response frame
2024-12-31T18:24:16.788+07:00 DEBUG 57461 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [282e45cb-2, L:/127.0.0.1:8080 - R:/127.0.0.1:56835] No sendHeaders() called before complete, sending zero-length header
2024-12-31T18:24:16.788+07:00 DEBUG 57461 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [282e45cb-2, L:/127.0.0.1:8080 - R:/127.0.0.1:56835] Decreasing pending responses, now 0
2024-12-31T18:24:16.788+07:00 DEBUG 57461 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [282e45cb-2, L:/127.0.0.1:8080 - R:/127.0.0.1:56835] Last HTTP packet was sent, terminating the channel
2024-12-31T18:24:16.788+07:00 DEBUG 57461 --- [ctor-http-nio-2] r.netty.channel.ChannelOperations        : [282e45cb-2, L:/127.0.0.1:8080 - R:/127.0.0.1:56835] [HttpServer] Channel inbound receiver cancelled (subscription disposed).
2024-12-31T18:24:16.788+07:00 TRACE 57461 --- [ctor-http-nio-2] r.netty.channel.ChannelOperations        : [282e45cb, L:/127.0.0.1:8080 - R:/127.0.0.1:56835] Disposing ChannelOperation from a channel

java.lang.Exception: ChannelOperation terminal stack
        at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:492)
        at reactor.netty.http.server.HttpServerOperations.cleanHandlerTerminate(HttpServerOperations.java:820)
        at reactor.netty.http.server.HttpTrafficHandler.operationComplete(HttpTrafficHandler.java:476)
        at reactor.netty.http.server.HttpTrafficHandler.operationComplete(HttpTrafficHandler.java:65)
        at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
        at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)
        at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
        at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
        at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625)
        at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105)
        at io.netty.util.internal.PromiseNotificationUtil.trySuccess(PromiseNotificationUtil.java:48)
        at io.netty.channel.ChannelOutboundBuffer.safeSuccess(ChannelOutboundBuffer.java:748)
        at io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:303)
        at io.netty.channel.ChannelOutboundBuffer.removeBytes(ChannelOutboundBuffer.java:383)
        at io.netty.channel.socket.nio.NioSocketChannel.doWrite(NioSocketChannel.java:421)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:931)
        at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:359)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:895)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1372)
        at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:935)
        at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:921)
        at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:907)
        at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.flush(CombinedChannelDuplexHandler.java:531)
        at io.netty.channel.ChannelOutboundHandlerAdapter.flush(ChannelOutboundHandlerAdapter.java:125)
        at io.netty.channel.CombinedChannelDuplexHandler.flush(CombinedChannelDuplexHandler.java:356)
        at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:937)
        at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:921)
        at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:907)
        at io.netty.channel.ChannelDuplexHandler.flush(ChannelDuplexHandler.java:127)
        at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:937)
        at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:957)
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982)
        at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950)
        at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:1000)
        at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1025)
        at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:306)
        at reactor.netty.http.server.HttpServerOperations.onOutboundComplete(HttpServerOperations.java:756)
        at reactor.netty.channel.ChannelOperations.onComplete(ChannelOperations.java:249)
        at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299)
        at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:210)
        at reactor.core.publisher.Operators.complete(Operators.java:137)
        at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46)
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:241)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:204)
        at reactor.core.publisher.Operators.complete(Operators.java:137)
        at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46)
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:204)
        at reactor.core.publisher.FluxTap$TapSubscriber.onComplete(FluxTap.java:286)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2231)
        at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2231)
        at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2231)
        at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onComplete(Operators.java:2231)
        at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:299)
        at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:250)
        at reactor.core.publisher.MonoFlatMap$FlatMapInner.onComplete(MonoFlatMap.java:324)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondComplete(MonoFlatMap.java:250)
        at reactor.core.publisher.MonoFlatMap$FlatMapInner.onComplete(MonoFlatMap.java:324)
        at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:549)
        at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89)
        at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:231)
        at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:79)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165)
        at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
        at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
        at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:176)
        at kotlinx.coroutines.reactor.MonoCoroutine.onCompleted(Mono.kt:103)
        at kotlinx.coroutines.AbstractCoroutine.onCompletionInternal(AbstractCoroutine.kt:93)
        at kotlinx.coroutines.JobSupport.tryFinalizeSimpleState(JobSupport.kt:296)
        at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:860)
        at kotlinx.coroutines.JobSupport.makeCompletingOnce$kotlinx_coroutines_core(JobSupport.kt:832)
        at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:100)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
        at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:367)
        at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:30)
        at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default(Cancellable.kt:25)
        at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:110)
        at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
        at kotlinx.coroutines.reactor.MonoKt.monoInternal$lambda$2(Mono.kt:92)
        at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:61)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
        at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165)
        at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
        at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74)
        at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:259)
        at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:865)
        at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200)
        at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
        at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
        at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:202)
        at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
        at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
        at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:202)
        at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:259)
        at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:865)
        at reactor.core.publisher.FluxConcatMap$WeakScalarSubscription.request(FluxConcatMap.java:480)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2331)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:339)
        at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108)
        at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:278)
        at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108)
        at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164)
        at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:278)
        at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108)
        at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.request(FluxPeek.java:138)
        at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2331)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:339)
        at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241)
        at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70)
        at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onSubscribe(FluxConcatMapNoPrefetch.java:164)
        at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201)
        at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
        at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
        at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265)
        at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
        at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76)
        at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55)
        at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1176)
        at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:710)
        at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481)
        at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:652)
        at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:240)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333)
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:455)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
        at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
        at [email protected]/java.lang.Thread.run(Thread.java:1583)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:832)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:211)

2024-12-31T18:24:16.828+07:00 DEBUG 57461 --- [ctor-http-nio-2] r.n.channel.ChannelOperationsHandler     : [282e45cb, L:/127.0.0.1:8080 - R:/127.0.0.1:56835] No ChannelOperation attached.

Also, GraphiQL doesn't work because resource not found.


Note that if you run with GET request below, it seems running but empty response will be returned.

curl -s -X GET -H "Content-Type: application/json" 'http://localhost:8080/graphql?query=%7BlistBooks%7Btitle%7D%7D'

image

Trace logs output:

2024-12-31T18:25:31.418+07:00 DEBUG 57461 --- [ctor-http-nio-3] r.n.http.server.HttpServerOperations     : [574214f1, L:/[0:0:0:0:0:0:0:1]:8080 - R:/[0:0:0:0:0:0:0:1]:57803] New http connection, requesting read
2024-12-31T18:25:31.418+07:00 DEBUG 57461 --- [ctor-http-nio-3] r.netty.transport.TransportConfig        : [574214f1, L:/[0:0:0:0:0:0:0:1]:8080 - R:/[0:0:0:0:0:0:0:1]:57803] Initialized pipeline DefaultChannelPipeline{(reactor.left.httpCodec = io.netty.handler.codec.http.HttpServerCodec), (reactor.left.httpTrafficHandler = reactor.netty.http.server.HttpTrafficHandler), (reactor.right.reactiveBridge = reactor.netty.channel.ChannelOperationsHandler)}
2024-12-31T18:25:31.419+07:00 DEBUG 57461 --- [ctor-http-nio-3] r.n.http.server.HttpServerOperations     : [574214f1, L:/[0:0:0:0:0:0:0:1]:8080 - R:/[0:0:0:0:0:0:0:1]:57803] Increasing pending responses, now 1
2024-12-31T18:25:31.419+07:00 DEBUG 57461 --- [ctor-http-nio-3] reactor.netty.http.server.HttpServer     : [574214f1-1, L:/[0:0:0:0:0:0:0:1]:8080 - R:/[0:0:0:0:0:0:0:1]:57803] Handler is being applied: org.springframework.http.server.reactive.ReactorHttpHandlerAdapter@4066a35e
2024-12-31T18:25:31.419+07:00 TRACE 57461 --- [ctor-http-nio-3] o.s.w.s.adapter.HttpWebHandlerAdapter    : [574214f1-3] HTTP GET "/graphql?query=%7BlistBooks%7Btitle%7D%7D", headers={masked}
2024-12-31T18:25:31.419+07:00 TRACE 57461 --- [ctor-http-nio-3] o.s.w.r.f.server.RequestPredicates       : Method "POST" does not match against value "GET"
2024-12-31T18:25:31.419+07:00 TRACE 57461 --- [ctor-http-nio-3] o.s.w.r.f.server.RequestPredicates       : Method "GET" matches against value "GET"
2024-12-31T18:25:31.419+07:00 TRACE 57461 --- [ctor-http-nio-3] o.s.w.r.f.server.RequestPredicates       : Pattern "/graphql" matches against value "/graphql"
2024-12-31T18:25:31.419+07:00 TRACE 57461 --- [ctor-http-nio-3] o.s.w.r.function.server.RouterFunctions  : [574214f1-3] Matched (((POST && /graphql) || (GET && /graphql)) && !org.springframework.web.reactive.function.server.CoRouterFunctionDsl$$Lambda$29ea120da357451ff42953e32557fe28557e30a8@27aaf9c1)
2024-12-31T18:25:31.419+07:00 DEBUG 57461 --- [ctor-http-nio-3] o.s.w.r.f.s.s.RouterFunctionMapping      : [574214f1-3] Mapped to org.springframework.web.reactive.function.server.CoRouterFunctionDsl$CoroutineContextAwareHandlerFunction@2dd03385
2024-12-31T18:25:31.420+07:00 DEBUG 57461 --- [ctor-http-nio-3] notprivacysafe.graphql.GraphQL           : Executing request. operation name: 'null'. query: '{listBooks{title}}'. variables '{}'
2024-12-31T18:25:31.420+07:00 DEBUG 57461 --- [ctor-http-nio-3] notprivacysafe.graphql.GraphQL           : Parsing query: '{listBooks{title}}'...
2024-12-31T18:25:31.422+07:00 DEBUG 57461 --- [ctor-http-nio-3] notprivacysafe.graphql.GraphQL           : Validating query: '{listBooks{title}}'
2024-12-31T18:25:31.423+07:00 DEBUG 57461 --- [ctor-http-nio-3] notprivacysafe.graphql.GraphQL           : Executing '6f4110a4-d4a2-4d09-8c63-833f103a338d'. operation name: 'null'. query: '{listBooks{title}}'. variables '{}'
2024-12-31T18:25:31.423+07:00 DEBUG 57461 --- [ctor-http-nio-3] n.graphql.execution.Execution            : Executing '6f4110a4-d4a2-4d09-8c63-833f103a338d' query operation: 'QUERY' using 'graphql.execution.AsyncExecutionStrategy' execution strategy
2024-12-31T18:25:31.423+07:00 DEBUG 57461 --- [ctor-http-nio-3] .i.d.DataLoaderDispatcherInstrumentation : Dispatching data loaders ([AuthorDataLoader])
2024-12-31T18:25:31.423+07:00 DEBUG 57461 --- [ctor-http-nio-3] graphql.execution.ExecutionStrategy      : '6f4110a4-d4a2-4d09-8c63-833f103a338d' completing field '/listBooks'...
2024-12-31T18:25:31.423+07:00 DEBUG 57461 --- [ctor-http-nio-3] graphql.execution.ExecutionStrategy      : '6f4110a4-d4a2-4d09-8c63-833f103a338d' completing field '/listBooks[0]/title'...
2024-12-31T18:25:31.423+07:00 DEBUG 57461 --- [ctor-http-nio-3] graphql.execution.ExecutionStrategy      : '6f4110a4-d4a2-4d09-8c63-833f103a338d' completing field '/listBooks[1]/title'...
2024-12-31T18:25:31.423+07:00 DEBUG 57461 --- [ctor-http-nio-3] graphql.execution.ExecutionStrategy      : '6f4110a4-d4a2-4d09-8c63-833f103a338d' completing field '/listBooks[2]/title'...
2024-12-31T18:25:31.423+07:00 DEBUG 57461 --- [ctor-http-nio-3] .i.d.DataLoaderDispatcherInstrumentation : Dispatching data loaders ([AuthorDataLoader])
2024-12-31T18:25:31.423+07:00 DEBUG 57461 --- [ctor-http-nio-3] graphql.GraphQL                          : Execution '6f4110a4-d4a2-4d09-8c63-833f103a338d' completed with zero errors
2024-12-31T18:25:31.424+07:00 TRACE 57461 --- [ctor-http-nio-3] o.s.http.codec.json.Jackson2JsonEncoder  : [574214f1-3] Encoding [GraphQLResponse(data={listBooks=[{title=Flowers to Algernon}, {title=The Catcher in the Rye}, {title=ライ麦畑でつかまえて (The Catcher in the Rye)}]}, errors=null, extensions=null)]
2024-12-31T18:25:31.424+07:00 DEBUG 57461 --- [ctor-http-nio-3] r.n.http.server.HttpServerOperations     : [574214f1-1, L:/[0:0:0:0:0:0:0:1]:8080 - R:/[0:0:0:0:0:0:0:1]:57803] Decreasing pending responses, now 0
2024-12-31T18:25:31.424+07:00 DEBUG 57461 --- [ctor-http-nio-3] r.n.http.server.HttpServerOperations     : [574214f1-1, L:/[0:0:0:0:0:0:0:1]:8080 - R:/[0:0:0:0:0:0:0:1]:57803] Last HTTP packet was sent, terminating the channel
2024-12-31T18:25:31.424+07:00 DEBUG 57461 --- [ctor-http-nio-3] r.netty.channel.ChannelOperations        : [574214f1-1, L:/[0:0:0:0:0:0:0:1]:8080 - R:/[0:0:0:0:0:0:0:1]:57803] [HttpServer] Channel inbound receiver cancelled (operation cancelled).
2024-12-31T18:25:31.424+07:00 TRACE 57461 --- [ctor-http-nio-3] o.s.w.s.adapter.HttpWebHandlerAdapter    : [574214f1-3] Completed 200 OK, headers={masked}
2024-12-31T18:25:31.424+07:00 TRACE 57461 --- [ctor-http-nio-3] o.s.h.s.r.ReactorHttpHandlerAdapter      : [574214f1-1, L:/[0:0:0:0:0:0:0:1]:8080 - R:/[0:0:0:0:0:0:0:1]:57803] Handling completed
2024-12-31T18:25:31.424+07:00 DEBUG 57461 --- [ctor-http-nio-3] r.n.http.server.HttpServerOperations     : [574214f1-1, L:/[0:0:0:0:0:0:0:1]:8080 - R:/[0:0:0:0:0:0:0:1]:57803] Last HTTP response frame
2024-12-31T18:25:31.424+07:00 TRACE 57461 --- [ctor-http-nio-3] r.netty.channel.ChannelOperations        : [574214f1, L:/[0:0:0:0:0:0:0:1]:8080 - R:/[0:0:0:0:0:0:0:1]:57803] Disposing ChannelOperation from a channel

java.lang.Exception: ChannelOperation terminal stack
        at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:492)
        at [email protected]/java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(DirectMethodHandle$Holder)
        at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at [email protected]/java.lang.Thread.runWith(Thread.java:1596)
        at [email protected]/java.lang.Thread.run(Thread.java:1583)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:832)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:211)

Expected behavior

Works correctly same as running on JVM.

@k-ogawa-1988 k-ogawa-1988 added the type: bug Something isn't working label Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug Something isn't working
Development

No branches or pull requests

1 participant