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

WebClient / Netty fails to send HTTP request in Native Image in Spring Boot 3.3.5 #43569

Closed
martypitt opened this issue Dec 19, 2024 · 2 comments
Labels
status: duplicate A duplicate of another issue

Comments

@martypitt
Copy link

martypitt commented Dec 19, 2024

Versions

  • Spring Boot 3.3.6, 3.3.5 (Broken, worked in 3.1.6)
  • Spring Native
  • Java 21
  • ubuntu OS

Reproducer project: graal-netty-reproducer.zip

We found that after upgrading a stack from Spring boot 3.1.6 to 3.3.5 that outbound requests using WebClient fail.
Not sure when the issue appeared, but have tested against Spring Boot 3.3.5 and 3.3.6, and the same code works against 3.1.6

In the attached code, compiled (using spring native) against spring boot 3.1.6, then everything works. (An http request is sent and the response returned)

However, after upgrading to Spring Boot 3.3.6, the request fails to send.

The underlying issue appears to be a problem in Netty's DNS resolution

Caused by: io.netty.resolver.dns.DnsResolveContext$SearchDomainUnknownHostException: Failed to resolve 'catfact.ninja' [A(1)] and search domain query for configured domains failed as well: [cable.virginm.net]

Which in turn seems to have the following linked exceptions:

Caused by: io.netty.resolver.dns.DnsNameResolverException: [394: /194.168.8.100:53] DefaultDnsQuestion(catfact.ninja. IN A) failed to send a query '394' via UDP (no stack trace available)
Caused by: io.netty.handler.codec.EncoderException: java.lang.NoClassDefFoundError: Could not initialize class io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueue
        at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:107)
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:893)

Full stack trace:

Exception in thread "main" org.springframework.web.reactive.function.client.WebClientRequestException: Failed to resolve 'catfact.ninja' [A(1)] and search domain query for configured domains failed as well: [cable.virginm.net]
        at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:136)
        Suppressed: The stacktrace has been enhanced by Reactor, refer to additional information below: 
Error has been observed at the following site(s):
        *__checkpoint ⇢ Request to GET https://catfact.ninja/fact [DefaultWebClient]
Original Stack Trace:
                at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:136)
                at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
                at reactor.core.publisher.Mono.subscribe(Mono.java:4576)
                at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
                at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
                at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
                at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
                at reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
                at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:205)
                at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
                at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:229)
                at reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:279)
                at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
                at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.maybeOnError(FluxConcatMapNoPrefetch.java:327)
                at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:212)
                at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
                at reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:476)
                at reactor.core.publisher.SinkManyEmitterProcessor$EmitterInner.drainParent(SinkManyEmitterProcessor.java:620)
                at reactor.core.publisher.FluxPublish$PubSubInner.request(FluxPublish.java:874)
                at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136)
                at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:337)
                at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136)
                at reactor.core.publisher.Operators$DeferredSubscription.request(Operators.java:1743)
                at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:196)
                at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:205)
                at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect$ClientTransportSubscriber.onError(HttpClientConnect.java:311)
                at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:205)
                at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onError(DefaultPooledConnectionProvider.java:172)
                at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.fail(AbstractPool.java:480)
                at reactor.netty.internal.shaded.reactor.pool.SimpleDequePool.lambda$drainLoop$9(SimpleDequePool.java:436)
                at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onError(FluxDoOnEach.java:186)
                at reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:205)
                at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnectionAllocator$PooledConnectionInitializer.onError(DefaultPooledConnectionProvider.java:583)
                at reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:241)
                at reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:315)
                at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
                at reactor.core.publisher.Operators.error(Operators.java:198)
                at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
                at reactor.core.publisher.Mono.subscribe(Mono.java:4576)
                at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
                at reactor.netty.transport.TransportConnector$MonoChannelPromise.tryFailure(TransportConnector.java:576)
                at reactor.netty.transport.TransportConnector.lambda$doResolveAndConnect$11(TransportConnector.java:375)
                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.setFailure0(DefaultPromise.java:629)
                at io.netty.util.concurrent.DefaultPromise.setFailure(DefaultPromise.java:110)
                at io.netty.resolver.InetSocketAddressResolver$2.operationComplete(InetSocketAddressResolver.java:86)
                at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
                at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
                at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
                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.setFailure0(DefaultPromise.java:629)
                at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
                at io.netty.resolver.dns.DnsResolveContext$1.operationComplete(DnsResolveContext.java:268)
                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.setFailure0(DefaultPromise.java:629)
                at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
                at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1158)
                at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:1097)
                at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:455)
                at io.netty.resolver.dns.DnsResolveContext.access$700(DnsResolveContext.java:70)
                at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:524)
                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.addListener(DefaultPromise.java:185)
                at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:35)
                at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:487)
                at io.netty.resolver.dns.DnsResolveContext.access$700(DnsResolveContext.java:70)
                at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:524)
                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.addListener(DefaultPromise.java:185)
                at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:35)
                at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:487)
                at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:1216)
                at io.netty.resolver.dns.DnsResolveContext.internalResolve(DnsResolveContext.java:395)
                at io.netty.resolver.dns.DnsResolveContext.doSearchDomainQuery(DnsResolveContext.java:321)
                at io.netty.resolver.dns.DnsAddressResolveContext.doSearchDomainQuery(DnsAddressResolveContext.java:99)
                at io.netty.resolver.dns.DnsResolveContext.resolve(DnsResolveContext.java:283)
                at io.netty.resolver.dns.DnsNameResolver.resolveNow(DnsNameResolver.java:1302)
                at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached0(DnsNameResolver.java:1286)
                at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached(DnsNameResolver.java:1227)
                at io.netty.resolver.dns.DnsNameResolver.doResolveAllNow(DnsNameResolver.java:1156)
                at io.netty.resolver.dns.DnsNameResolver.access$600(DnsNameResolver.java:96)
                at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1145)
                at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1142)
                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.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84)
                at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess(AbstractChannel.java:988)
                at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:577)
                at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1281)
                at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:600)
                at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:579)
                at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:922)
                at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:259)
                at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:380)
                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:472)
                at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:405)
                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:902)
                at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:878)
        Suppressed: java.lang.Exception: #block terminated with an error
                at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:104)
                at reactor.core.publisher.Mono.block(Mono.java:1779)
                at com.example.graal_netty_reproducer.GraalNettyReproducerApplicationKt.main(GraalNettyReproducerApplication.kt:29)
                at [email protected]/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH)
Caused by: io.netty.resolver.dns.DnsResolveContext$SearchDomainUnknownHostException: Failed to resolve 'catfact.ninja' [A(1)] and search domain query for configured domains failed as well: [cable.virginm.net]
        at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1150)
        at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:1097)
        at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:455)
        at io.netty.resolver.dns.DnsResolveContext.access$700(DnsResolveContext.java:70)
        at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:524)
        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.addListener(DefaultPromise.java:185)
        at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:35)
        at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:487)
        at io.netty.resolver.dns.DnsResolveContext.access$700(DnsResolveContext.java:70)
        at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:524)
        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.addListener(DefaultPromise.java:185)
        at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:35)
        at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:487)
        at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:1216)
        at io.netty.resolver.dns.DnsResolveContext.internalResolve(DnsResolveContext.java:395)
        at io.netty.resolver.dns.DnsResolveContext.doSearchDomainQuery(DnsResolveContext.java:321)
        at io.netty.resolver.dns.DnsAddressResolveContext.doSearchDomainQuery(DnsAddressResolveContext.java:99)
        at io.netty.resolver.dns.DnsResolveContext.resolve(DnsResolveContext.java:283)
        at io.netty.resolver.dns.DnsNameResolver.resolveNow(DnsNameResolver.java:1302)
        at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached0(DnsNameResolver.java:1286)
        at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached(DnsNameResolver.java:1227)
        at io.netty.resolver.dns.DnsNameResolver.doResolveAllNow(DnsNameResolver.java:1156)
        at io.netty.resolver.dns.DnsNameResolver.access$600(DnsNameResolver.java:96)
        at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1145)
        at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1142)
        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.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess(AbstractChannel.java:988)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:577)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1281)
        at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:600)
        at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:579)
        at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:922)
        at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:259)
        at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:380)
        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:472)
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:405)
        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:902)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:878)
Caused by: io.netty.resolver.dns.DnsNameResolverException: [394: /194.168.8.100:53] DefaultDnsQuestion(catfact.ninja. IN A) failed to send a query '394' via UDP (no stack trace available)
Caused by: io.netty.handler.codec.EncoderException: java.lang.NoClassDefFoundError: Could not initialize class io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueue
        at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:107)
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:893)
        at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:956)
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:982)
        at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:950)
        at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:969)
        at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:310)
        at io.netty.resolver.dns.DnsQueryContext.writeQuery(DnsQueryContext.java:247)
        at io.netty.resolver.dns.DnsQueryContext.sendQuery(DnsQueryContext.java:241)
        at io.netty.resolver.dns.DnsQueryContext.writeQuery(DnsQueryContext.java:230)
        at io.netty.resolver.dns.DnsNameResolver.doQuery(DnsNameResolver.java:1440)
        at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:482)
        at io.netty.resolver.dns.DnsResolveContext.access$700(DnsResolveContext.java:70)
        at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:524)
        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.addListener(DefaultPromise.java:185)
        at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:35)
        at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:487)
        at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:1216)
        at io.netty.resolver.dns.DnsResolveContext.internalResolve(DnsResolveContext.java:395)
        at io.netty.resolver.dns.DnsResolveContext.doSearchDomainQuery(DnsResolveContext.java:321)
        at io.netty.resolver.dns.DnsAddressResolveContext.doSearchDomainQuery(DnsAddressResolveContext.java:99)
        at io.netty.resolver.dns.DnsResolveContext.resolve(DnsResolveContext.java:283)
        at io.netty.resolver.dns.DnsNameResolver.resolveNow(DnsNameResolver.java:1302)
        at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached0(DnsNameResolver.java:1286)
        at io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached(DnsNameResolver.java:1227)
        at io.netty.resolver.dns.DnsNameResolver.doResolveAllNow(DnsNameResolver.java:1156)
        at io.netty.resolver.dns.DnsNameResolver.access$600(DnsNameResolver.java:96)
        at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1145)
        at io.netty.resolver.dns.DnsNameResolver$7.operationComplete(DnsNameResolver.java:1142)
        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.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess(AbstractChannel.java:988)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:577)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1281)
        at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:600)
        at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:579)
        at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:922)
        at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:259)
        at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:380)
        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:472)
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:405)
        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:902)
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:878)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class io.netty.util.internal.shaded.org.jctools.queues.unpadded.MpscUnpaddedArrayQueue
        at io.netty.util.internal.PlatformDependent.newFixedMpscUnpaddedQueue(PlatformDependent.java:1102)
        at io.netty.buffer.PoolThreadCache$MemoryRegionCache.<init>(PoolThreadCache.java:337)
        at io.netty.buffer.PoolThreadCache$SubPageMemoryRegionCache.<init>(PoolThreadCache.java:302)
        at io.netty.buffer.PoolThreadCache.createSubPageCaches(PoolThreadCache.java:113)
        at io.netty.buffer.PoolThreadCache.<init>(PoolThreadCache.java:77)
        at io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.initialValue(PooledByteBufAllocator.java:541)
        at io.netty.buffer.PooledByteBufAllocator$PoolThreadLocalCache.initialValue(PooledByteBufAllocator.java:518)
        at io.netty.util.concurrent.FastThreadLocal.initialize(FastThreadLocal.java:177)
        at io.netty.util.concurrent.FastThreadLocal.get(FastThreadLocal.java:142)
        at io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:398)
        at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:188)
        at io.netty.buffer.AbstractByteBufAllocator.directBuffer(AbstractByteBufAllocator.java:179)
        at io.netty.buffer.AbstractByteBufAllocator.ioBuffer(AbstractByteBufAllocator.java:140)
        at io.netty.handler.codec.dns.DatagramDnsQueryEncoder.allocateBuffer(DatagramDnsQueryEncoder.java:80)
        at io.netty.handler.codec.dns.DatagramDnsQueryEncoder.encode(DatagramDnsQueryEncoder.java:58)
        at io.netty.handler.codec.dns.DatagramDnsQueryEncoder.encode(DatagramDnsQueryEncoder.java:32)
        at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:90)
        ... 57 more
@martypitt
Copy link
Author

Have just seen this is a duplicate of #43273.

Apologies for the noise.

@martypitt
Copy link
Author

Confirmed that adding:

<configuration>
   <metadataRepository>
       <version>0.3.14</version>
    </metadataRepository>
</configuration>

resolves the issue.

@mhalbritter mhalbritter closed this as not planned Won't fix, can't repro, duplicate, stale Dec 19, 2024
@mhalbritter mhalbritter added the status: duplicate A duplicate of another issue label Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: duplicate A duplicate of another issue
Projects
None yet
Development

No branches or pull requests

2 participants