Closed krickert closed 1 year ago
I also want to point out that this seems to be the case for all client discovery on consul. I am able to run it OK on my side in dev mode. I'll be glad to show any other details. I'm going to try and run this on a windows machine right now and see if it's OS specific. however, given that it's a serde serialization error, I suspect there's a bug that broke the feature
can you try declare @SerdeImport(Inet4Address.class)
on your Application
class as the error says, just out of interest
/home/krickert/.sdkman/candidates/java/17.0.7-tem/bin/java -Dfile.encoding=UTF-8 -classpath /home/krickert/IdeaProjects/search_indexer/services/grpc-nlp-service/target/classes:/home/krickert/.m2/repository/io/micronaut/micronaut-discovery-core/4.1.8/micronaut-discovery-core-4.1.8.jar:/home/krickert/.m2/repository/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-context/4.1.8/micronaut-context-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-aop/4.1.8/micronaut-aop-4.1.8.jar:/home/krickert/.m2/repository/io/projectreactor/reactor-core/3.5.10/reactor-core-3.5.10.jar:/home/krickert/.m2/repository/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar:/home/krickert/.m2/repository/io/micronaut/cache/micronaut-cache-caffeine/4.0.2/micronaut-cache-caffeine-4.0.2.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-inject/4.1.8/micronaut-inject-4.1.8.jar:/home/krickert/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/home/krickert/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-core/4.1.8/micronaut-core-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/cache/micronaut-cache-core/4.0.2/micronaut-cache-core-4.0.2.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-http/4.1.8/micronaut-http-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-context-propagation/4.1.8/micronaut-context-propagation-4.1.8.jar:/home/krickert/.m2/repository/com/github/ben-manes/caffeine/caffeine/3.1.7/caffeine-3.1.7.jar:/home/krickert/.m2/repository/org/checkerframework/checker-qual/3.36.0/checker-qual-3.36.0.jar:/home/krickert/.m2/repository/io/micronaut/discovery/micronaut-discovery-client/4.0.1/micronaut-discovery-client-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-json-core/4.1.8/micronaut-json-core-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-http-client/4.1.8/micronaut-http-client-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-http-client-core/4.1.8/micronaut-http-client-core-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-websocket/4.1.8/micronaut-websocket-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-http-netty/4.1.8/micronaut-http-netty-4.1.8.jar:/home/krickert/.m2/repository/io/netty/netty-codec-http/4.1.99.Final/netty-codec-http-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-codec-http2/4.1.99.Final/netty-codec-http2-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-handler/4.1.99.Final/netty-handler-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-resolver/4.1.99.Final/netty-resolver-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-handler-proxy/4.1.99.Final/netty-handler-proxy-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-common/4.1.99.Final/netty-common-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-buffer/4.1.99.Final/netty-buffer-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-transport/4.1.99.Final/netty-transport-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-codec/4.1.99.Final/netty-codec-4.1.99.Final.jar:/home/krickert/.m2/repository/io/netty/netty-codec-socks/4.1.99.Final/netty-codec-socks-4.1.99.Final.jar:/home/krickert/.m2/repository/io/micronaut/validation/micronaut-validation/4.0.3/micronaut-validation-4.0.3.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-core-reactive/4.1.8/micronaut-core-reactive-4.1.8.jar:/home/krickert/.m2/repository/jakarta/validation/jakarta.validation-api/3.0.2/jakarta.validation-api-3.0.2.jar:/home/krickert/.m2/repository/io/micronaut/reactor/micronaut-reactor/3.0.2/micronaut-reactor-3.0.2.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-retry/4.1.8/micronaut-retry-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-runtime/4.0.1/micronaut-grpc-runtime-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-client-runtime/4.0.1/micronaut-grpc-client-runtime-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-annotation/4.0.1/micronaut-grpc-annotation-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-opentracing/4.0.1/micronaut-grpc-opentracing-4.0.1.jar:/home/krickert/.m2/repository/io/grpc/grpc-netty/1.56.1/grpc-netty-1.56.1.jar:/home/krickert/.m2/repository/io/grpc/grpc-core/1.56.1/grpc-core-1.56.1.jar:/home/krickert/.m2/repository/com/google/android/annotations/4.1.1.4/annotations-4.1.1.4.jar:/home/krickert/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.23/animal-sniffer-annotations-1.23.jar:/home/krickert/.m2/repository/io/perfmark/perfmark-api/0.26.0/perfmark-api-0.26.0.jar:/home/krickert/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.99.Final/netty-transport-native-unix-common-4.1.99.Final.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-buffer-netty/4.1.8/micronaut-buffer-netty-4.1.8.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-server-runtime/4.0.1/micronaut-grpc-server-runtime-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/grpc/micronaut-grpc-health/4.0.1/micronaut-grpc-health-4.0.1.jar:/home/krickert/.m2/repository/io/micronaut/serde/micronaut-serde-jackson/2.2.5/micronaut-serde-jackson-2.2.5.jar:/home/krickert/.m2/repository/io/micronaut/micronaut-jackson-core/4.1.8/micronaut-jackson-core-4.1.8.jar:/home/krickert/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.15.2/jackson-core-2.15.2.jar:/home/krickert/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.15.2/jackson-annotations-2.15.2.jar:/home/krickert/.m2/repository/io/micronaut/serde/micronaut-serde-api/2.2.5/micronaut-serde-api-2.2.5.jar:/home/krickert/.m2/repository/io/micronaut/serde/micronaut-serde-support/2.2.5/micronaut-serde-support-2.2.5.jar:/home/krickert/.m2/repository/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar:/home/krickert/.m2/repository/ch/qos/logback/logback-classic/1.4.11/logback-classic-1.4.11.jar:/home/krickert/.m2/repository/ch/qos/logback/logback-core/1.4.11/logback-core-1.4.11.jar:/home/krickert/.m2/repository/org/yaml/snakeyaml/2.0/snakeyaml-2.0.jar:/home/krickert/.m2/repository/io/micronaut/testresources/micronaut-test-resources-client/2.0.0/micronaut-test-resources-client-2.0.0.jar:/home/krickert/.m2/repository/io/micronaut/testresources/micronaut-test-resources-core/2.0.0/micronaut-test-resources-core-2.0.0.jar:/home/krickert/.m2/repository/org/apache/opennlp/opennlp-tools/2.3.0/opennlp-tools-2.3.0.jar:/home/krickert/IdeaProjects/search_indexer/protobuf-projects/wikisearch-model/target/classes:/home/krickert/.m2/repository/commons-io/commons-io/2.13.0/commons-io-2.13.0.jar:/home/krickert/.m2/repository/org/apache/commons/commons-lang3/3.13.0/commons-lang3-3.13.0.jar:/home/krickert/.m2/repository/io/grpc/grpc-stub/1.56.1/grpc-stub-1.56.1.jar:/home/krickert/.m2/repository/io/grpc/grpc-api/1.56.1/grpc-api-1.56.1.jar:/home/krickert/.m2/repository/io/grpc/grpc-context/1.56.1/grpc-context-1.56.1.jar:/home/krickert/.m2/repository/io/grpc/grpc-protobuf/1.56.1/grpc-protobuf-1.56.1.jar:/home/krickert/.m2/repository/com/google/api/grpc/proto-google-common-protos/2.17.0/proto-google-common-protos-2.17.0.jar:/home/krickert/.m2/repository/io/grpc/grpc-protobuf-lite/1.56.1/grpc-protobuf-lite-1.56.1.jar:/home/krickert/.m2/repository/com/google/protobuf/protobuf-java/3.23.4/protobuf-java-3.23.4.jar:/home/krickert/.m2/repository/org/testcontainers/consul/1.18.3/consul-1.18.3.jar:/home/krickert/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar:/home/krickert/.m2/repository/com/google/code/gson/gson/2.8.9/gson-2.8.9.jar:/home/krickert/.m2/repository/com/google/errorprone/error_prone_annotations/2.18.0/error_prone_annotations-2.18.0.jar:/home/krickert/.m2/repository/com/google/guava/guava/32.0.1-jre/guava-32.0.1-jre.jar:/home/krickert/.m2/repository/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar:/home/krickert/.m2/repository/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:/home/krickert/.m2/repository/com/google/j2objc/j2objc-annotations/2.8/j2objc-annotations-2.8.jar com.krickert.search.service.nlp.Application
__ __ _ _
| \/ (_) ___ _ __ ___ _ __ __ _ _ _| |_
| |\/| | |/ __| '__/ _ \| '_ \ / _` | | | | __|
| | | | | (__| | | (_) | | | | (_| | |_| | |_
|_| |_|_|\___|_| \___/|_| |_|\__,_|\__,_|\__|
03:20:09.914 [main] INFO i.m.context.DefaultBeanContext - Reading bootstrap environment configuration
03:20:12.093 [main] INFO io.micronaut.runtime.Micronaut - Startup completed in 2804ms. Server Running: http://localhost:50051
03:20:22.110 [default-nioEventLoopGroup-4-1] WARN i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
io.netty.handler.timeout.ReadTimeoutException: null
03:20:28.148 [default-nioEventLoopGroup-4-2] WARN i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
io.netty.handler.timeout.ReadTimeoutException: null
03:20:37.150 [default-nioEventLoopGroup-4-3] WARN i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
io.netty.handler.timeout.ReadTimeoutException: null
03:20:39.149 [default-nioEventLoopGroup-4-4] ERROR i.m.d.registration.AutoRegistration - Error occurred during service registration with Consul: class io.micronaut.discovery.consul.client.v1.TTLCheck cannot be cast to class io.micronaut.discovery.consul.client.v1.HTTPCheck (io.micronaut.discovery.consul.client.v1.TTLCheck and io.micronaut.discovery.consul.client.v1.HTTPCheck are in unnamed module of loader 'app')
java.lang.ClassCastException: class io.micronaut.discovery.consul.client.v1.TTLCheck cannot be cast to class io.micronaut.discovery.consul.client.v1.HTTPCheck (io.micronaut.discovery.consul.client.v1.TTLCheck and io.micronaut.discovery.consul.client.v1.HTTPCheck are in unnamed module of loader 'app')
at io.micronaut.discovery.consul.client.v1.$HTTPCheck$Introspection.dispatchOne(Unknown Source)
at io.micronaut.inject.beans.AbstractInitializableBeanIntrospection$BeanPropertyImpl.getUnsafe(AbstractInitializableBeanIntrospection.java:856)
at io.micronaut.serde.support.serializers.SerBean$PropSerProperty.get(SerBean.java:463)
at io.micronaut.serde.support.serializers.CustomizedObjectSerializer.serialize(CustomizedObjectSerializer.java:66)
at io.micronaut.serde.support.serializers.CustomizedIterableSerializer.serialize(CustomizedIterableSerializer.java:50)
at io.micronaut.serde.support.serializers.CustomizedIterableSerializer.serialize(CustomizedIterableSerializer.java:32)
at io.micronaut.serde.support.serializers.CustomizedObjectSerializer.serialize(CustomizedObjectSerializer.java:132)
at io.micronaut.serde.support.serializers.ObjectSerializer$RuntimeTypeSerializer.serialize(ObjectSerializer.java:245)
at io.micronaut.serde.jackson.JacksonJsonMapper.writeValue(JacksonJsonMapper.java:114)
at io.micronaut.serde.jackson.JacksonJsonMapper.writeValue(JacksonJsonMapper.java:193)
at io.micronaut.json.body.JsonMessageHandler.writeTo(JsonMessageHandler.java:134)
at io.micronaut.http.body.MessageBodyWriter.writeTo(MessageBodyWriter.java:138)
at io.micronaut.http.netty.body.NettyJsonHandler.writeTo(NettyJsonHandler.java:133)
at io.micronaut.http.body.DynamicMessageBodyWriter.writeTo(DynamicMessageBodyWriter.java:79)
at io.micronaut.http.client.netty.DefaultHttpClient.buildNettyRequest(DefaultHttpClient.java:1326)
at io.micronaut.http.client.netty.DefaultHttpClient.sendRequestThroughChannel(DefaultHttpClient.java:1468)
at io.micronaut.http.client.netty.DefaultHttpClient.lambda$exchangeImpl$26(DefaultHttpClient.java:1102)
at reactor.core.publisher.FluxCreate.subscribe(FluxCreate.java:95)
at reactor.core.publisher.Flux.subscribe(Flux.java:8773)
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onNext(MonoFlatMapMany.java:195)
at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
at io.micronaut.http.client.netty.CancellableMonoSink.tryForward(CancellableMonoSink.java:69)
at io.micronaut.http.client.netty.CancellableMonoSink.tryEmitValue(CancellableMonoSink.java:86)
at io.micronaut.http.client.netty.ConnectionManager$Pool$ConnectionHolder.emitPoolHandle(ConnectionManager.java:1155)
at io.micronaut.http.client.netty.ConnectionManager$Pool$Http1ConnectionHolder.dispatch0(ConnectionManager.java:1308)
at io.micronaut.http.client.netty.ConnectionManager$Pool$ConnectionHolder.dispatch(ConnectionManager.java:1179)
at io.micronaut.http.client.netty.PoolResizer.dispatchSafe(PoolResizer.java:169)
at io.micronaut.http.client.netty.PoolResizer.doSomeWork(PoolResizer.java:115)
at io.micronaut.http.client.netty.PoolResizer.dirty(PoolResizer.java:77)
at io.micronaut.http.client.netty.PoolResizer.onNewConnectionEstablished1(PoolResizer.java:208)
at io.micronaut.http.client.netty.ConnectionManager$Pool$Http1ConnectionHolder.init(ConnectionManager.java:1248)
at io.micronaut.http.client.netty.ConnectionManager$Pool$2$1.channelActive(ConnectionManager.java:1038)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:262)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelActive(CombinedChannelDuplexHandler.java:412)
at io.netty.channel.ChannelInboundHandlerAdapter.channelActive(ChannelInboundHandlerAdapter.java:69)
at io.netty.channel.CombinedChannelDuplexHandler.channelActive(CombinedChannelDuplexHandler.java:211)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:260)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelActive(DefaultChannelPipeline.java:1398)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:258)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238)
at io.netty.channel.DefaultChannelPipeline.fireChannelActive(DefaultChannelPipeline.java:895)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:305)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:335)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776)
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 java.base/java.lang.Thread.run(Thread.java:833)
I'm getting a class cast exception now as well.
Couple observations now:
I now see a class cast exception, which I pasted above.
From what I can tell - this would be reproduceable when attempting to run in most environments. Since the instructions do say to turn of consul integration on a dev environment, I can see how that would've made it past the tests.
Not sure if this helps. I put a breakpoint to where the exception is thrown. TTLCheck is attempting to be casted to HTTPCheck. This behavior is the same on the mac.
I think we might be able to conclude that the discovery client doesn't register the service. I tried this with an http service example, and that too does not work.
ok will look into it. Thanks for the feedback, in the meantime you can remove micronaut-serde-jackson
and replace it with micronaut-jackson-databind
and it will work.
This looks to me like a duplicate of #385
Thanks for the workaround! Works fine. I also had to add micronaut-discovery-client
too.. but this unblocked me. Thanks so much!!!
I created an issue to support java.net.InetAddress
in Micronaut Serialization. I am able to reproduce the java.lang.ClassCastException: class io.micronaut.discovery.consul.client.v1.TTLCheck cannot be cast to class io.micronaut.discovery.consul.client.v1.HTTPCheck
error.
Is there a way to validate if the workaround breaks the health check exposing at the grpc endpoint?
https://micronaut-projects.github.io/micronaut-grpc/latest/guide/#server
Following this guide, to automatically register the health checks it asks that you add the following dependencies:
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-services</artifactId>
</dependency>
<dependency>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-management</artifactId>
</dependency>
And the instructions say after this:
If the management dependency (io.micronaut:micronaut-management) is added, then Micronaut’s Health Endpoint can be used to expose the health status of the gRPC server.
For example, if gRPC is running then the /health endpoint will return:
{ "status": "UP", "details": { "grpc-server": { "name": "your-project-name", "status": "UP", "details": { "host": "localhost", "port": 5050 } } }, ... }
This used to work for me. Although consul registers the service fine (still going to test the client - but have another question about that as well)..
I'll be glad to make it a separate bug, but think it's not a bug because I suspect that it's related to this bug and I'm just missing a dependency.
When I try to hit the health check endpoint I get:
> curl http://localhost:50052/health -L
curl: (1) Received HTTP/0.9 when not allowed
And from the running application:
Oct 09, 2023 6:09:15 AM io.grpc.netty.NettyServerTransport notifyTerminated
INFO: Transport failed
io.netty.handler.codec.http2.Http2Exception: Unexpected HTTP/1.x request: GET /health
at io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:109)
at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.readClientPrefaceString(Http2ConnectionHandler.java:317)
at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.decode(Http2ConnectionHandler.java:247)
at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:453)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290)
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 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 java.base/java.lang.Thread.run(Thread.java:833)
You can see this if you go to this project https://github.com/krickert/search_indexer
Under the maven modules "services/grpc-vectorizer-service"
It's self-contained, but it is dependent on a parent project (the proto stuff) - but if need be I can make it more self-contained than it is now.
I believe this fixed registering the client - but I think the other direction doesn't work; whenever I try to do a consul lookup by following the directions I'll always get an exception.
Caused by: io.micronaut.http.client.exceptions.HttpClientResponseException: Client 'consul': Error decoding HTTP response body: No bean introspection available for type [class java.net.InetAddress]. Ensure the class is annotated with io.micronaut.core.annotation.Introspected
at io.micronaut.http.client.netty.DefaultHttpClient$FullHttpResponseHandler.makeNormalBodyParseError(DefaultHttpClient.java:2254)
at io.micronaut.http.client.netty.DefaultHttpClient$FullHttpResponseHandler.forwardResponseToPromise(DefaultHttpClient.java:2184)
This happened for all clients you can try
Checked the latest snapshot out and everything is working. The workaround (I think?) breaks the client. Downloading the snapshot works. will use the snapshot for now until the release is out.
Expected Behavior
Run the tutorial and demonstrage how sonsul would work.
Actual Behaviour
The application fails with the following stack trace: /Users/kristianrickert/.sdkman/candidates/java/17.0.5-amzn/bin/java -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=62002:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/kristianrickert/Downloads/micronaut-microservices-services-discover-consul-gradle-kotlin (1)/bookrecommendation/build/classes/kotlin/main:/Users/kristianrickert/Downloads/micronaut-microservices-services-discover-consul-gradle-kotlin (1)/bookrecommendation/build/generated/ksp/main/classes:/Users/kristianrickert/Downloads/micronaut-microservices-services-discover-consul-gradle-kotlin (1)/bookrecommendation/build/resources/main:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut.discovery/micronaut-discovery-client/4.0.1/93edd521ca27ce769f590abc22eac7389df6ad65/micronaut-discovery-client-4.0.1.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut.kotlin/micronaut-kotlin-runtime/4.0.2/a85061b54a2a7908dbf3a7991af58e7e7846704a/micronaut-kotlin-runtime-4.0.2.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut.reactor/micronaut-reactor-http-client/3.0.2/81d44de5e8cc0bedf6f4b4872022eff4b3505ca0/micronaut-reactor-http-client-3.0.2.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut.reactor/micronaut-reactor/3.0.2/209dc7dc4710e241c048a8bafaaf6b0003b99b40/micronaut-reactor-3.0.2.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut.serde/micronaut-serde-jackson/2.2.4/2c037ddb72942d01cd742424a35ab6699a33c1ff/micronaut-serde-jackson-2.2.4.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-http-client/4.1.6/991f4f20ccfc135bd369f3a4d1873f7f1dfbec1d/micronaut-http-client-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-retry/4.1.6/3347c66e64e7070eade33dcade17a64806152aae/micronaut-retry-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-management/4.1.6/ab0d444971a5967cface2fa969a56d1f17a7ba67/micronaut-management-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-http-server-netty/4.1.6/88b4c225560685e668133e3d67caf35877f5ed6b/micronaut-http-server-netty-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-inject/4.1.6/51ead8f85c5abfeaa4e9234f1bf7cc5ffcafdee6/micronaut-inject-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.graalvm.nativeimage/svm/23.0.1/3a8dc6ab2a0a01b6a5a0cf02941492d6a5a9beea/svm-23.0.1.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.8.22/b52be44bc57cb6fd2169a29aefa4507c4e49c858/kotlin-reflect-1.8.22.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.8.22/b25c86d47d6b962b9cf0f8c3f320c8a10eea3dd1/kotlin-stdlib-jdk8-1.8.22.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-discovery-core/4.1.6/4f6c414c5a110b9a90cafa4670ee7d22668d243c/micronaut-discovery-core-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-json-core/4.1.6/899071d64f2f2696f6ad465751e3d98c46c4d922/micronaut-json-core-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut.validation/micronaut-validation/4.0.3/2792c9474f65b5d5ff775d4d804bde7dd3ad1699/micronaut-validation-4.0.3.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-context/4.1.6/b52f30d46cec46c176d9dac3020f62372b82e6ab/micronaut-context-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.projectreactor/reactor-core/3.5.10/b2d043508fbc0190bfb63eea1b33551f48a8c32b/reactor-core-3.5.10.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut.serde/micronaut-serde-api/2.2.4/b0de3fa4823a97e91f3c385400b4e6c21ce6edfa/micronaut-serde-api-2.2.4.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-jackson-core/4.1.6/e0450ffc50b1533645d29658a46cd5e186ff925a/micronaut-jackson-core-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.15.2/4724a65ac8e8d156a24898d50fd5dbd3642870b8/jackson-annotations-2.15.2.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-websocket/4.1.6/22eac813b6d57125ac5301f19c7b75c8d80b32cf/micronaut-websocket-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-http-client-core/4.1.6/e47a5eab2eb6a9ef5ae8bbe9fe66bcfbd3c619b6/micronaut-http-client-core-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-http-netty/4.1.6/c6c287095312541c62bf03a3665eca6628b700da/micronaut-http-netty-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.netty/netty-handler-proxy/4.1.97.Final/a99ecef0e1d86a92e40a7c89805c236d9cd7493e/netty-handler-proxy-4.1.97.Final.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/2.0.9/7cf2726fdcfbc8610f9a71fb3ed639871f315340/slf4j-api-2.0.9.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-core-reactive/4.1.6/856b4ef83a273b39ba2b4a39657eca7e73ab6fe9/micronaut-core-reactive-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-router/4.1.6/eeaf11ff4caaea6a2ae24ebe733f1440d885fd2d/micronaut-router-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-http-server/4.1.6/eabe112b07c2c0174279359da1ba80e4109406d7/micronaut-http-server-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec-http/4.1.97.Final/af78acec783ffd77c63d8aeecc21041fd39ac54f/netty-codec-http-4.1.97.Final.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-core/4.1.6/7165916b17e00ea684ec960d38598828702e81ea/micronaut-core-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/jakarta.annotation/jakarta.annotation-api/2.1.1/48b9bda22b091b1f48b13af03fe36db3be6e1ae3/jakarta.annotation-api-2.1.1.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/jakarta.inject/jakarta.inject-api/2.0.1/4c28afe1991a941d7702fe1362c365f0a8641d1e/jakarta.inject-api-2.0.1.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.graalvm.nativeimage/objectfile/23.0.1/fdf2498dec4e3a9c245194459489326139542ebb/objectfile-23.0.1.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.graalvm.nativeimage/pointsto/23.0.1/4c00015096d190329bed2afb6d944e3325d3c5e8/pointsto-23.0.1.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.graalvm.nativeimage/native-image-base/23.0.1/5e6f202d15d266fad0fb80691608578dfb36b97d/native-image-base-23.0.1.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.graalvm.compiler/compiler/23.0.1/d46d27452f8565a54f753208b16d4e0809180a98/compiler-23.0.1.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.graalvm.sdk/graal-sdk/23.0.1/a9e13a0f6d6dea76f2dfdedc7f10325e4f0481c4/graal-sdk-23.0.1.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.8.22/636bf8b320e7627482771bbac9ed7246773c02bd/kotlin-stdlib-1.8.22.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.8.22/4dabb8248310d833bb6a8b516024a91fd3d275c/kotlin-stdlib-jdk7-1.8.22.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-http/4.1.6/45f92cb2a7806464e5788583fb20950fd26c1593/micronaut-http-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/jakarta.validation/jakarta.validation-api/3.0.2/92b6631659ba35ca09e44874d3eb936edfeee532/jakarta.validation-api-3.0.2.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-aop/4.1.6/8e06948b197df724bfec6661dec2d657df169c4b/micronaut-aop-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.reactivestreams/reactive-streams/1.0.4/3864a1320d97d7b045f729a326e1e077661f31b7/reactive-streams-1.0.4.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.15.2/a6fe1836469a69b3ff66037c324d75fc66ef137c/jackson-core-2.15.2.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-buffer-netty/4.1.6/57429cf821a1f39ed1f1e0efb99f5ec0ab267d17/micronaut-buffer-netty-4.1.6.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec-http2/4.1.97.Final/893888d09a7bef0d0ba973d7471943e765d0fd08/netty-codec-http2-4.1.97.Final.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.netty/netty-handler/4.1.97.Final/abb86c6906bf512bf2b797a41cd7d2e8d3cd7c36/netty-handler-4.1.97.Final.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec-socks/4.1.97.Final/30e8fa29a349db5a933225d61891b8802836bb79/netty-codec-socks-4.1.97.Final.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.netty/netty-codec/4.1.97.Final/384ba4d75670befbedb45c4d3b497a93639c206d/netty-codec-4.1.97.Final.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport/4.1.97.Final/f37380d23c9bb079bc702910833b2fd532c9abd0/netty-transport-4.1.97.Final.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.netty/netty-buffer/4.1.97.Final/f8f3d8644afa5e6e1a40a3a6aeb9d9aa970ecb4f/netty-buffer-4.1.97.Final.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.netty/netty-common/4.1.97.Final/7cceacaf11df8dc63f23d0fb58e9d4640fc88404/netty-common-4.1.97.Final.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.graalvm.truffle/truffle-api/23.0.1/7a374e07d336784c1ec94e8fed45a61a700c0993/truffle-api-23.0.1.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.8.22/1a8e3601703ae14bb58757ea6b2d8e8e5935a586/kotlin-stdlib-common-1.8.22.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.netty/netty-transport-native-unix-common/4.1.97.Final/d469d84265ab70095b01b40886cabdd433b6e664/netty-transport-native-unix-common-4.1.97.Final.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.netty/netty-resolver/4.1.97.Final/cec8348108dc76c47cf87c669d514be52c922144/netty-resolver-4.1.97.Final.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.module/jackson-module-kotlin/2.15.2/475c9721f5a2a5b7bea57d504bd8b0586d1ba5e/jackson-module-kotlin-2.15.2.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.4.11/54450c0c783e896a1a6d88c043bd2f1daba1c382/logback-classic-1.4.11.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/2.0/3aab2116756442bf0d4cd1c089b24d34c3baa253/snakeyaml-2.0.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/com.typesafe/config/1.4.2/4c40a633e7994cfb0354244efb6d03fcb11c3ecf/config-1.4.2.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut.serde/micronaut-serde-support/2.2.4/80a9170538d1097bfc376e9ba994b3b435625cba/micronaut-serde-support-2.2.4.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.15.2/9353b021f10c307c00328f52090de2bdb4b6ff9c/jackson-databind-2.15.2.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-core/1.4.11/2f9f280219a9922a74200eaf7138c4c17fb87c0f/logback-core-1.4.11.jar:/Users/kristianrickert/.gradle/caches/modules-2/files-2.1/io.micronaut/micronaut-context-propagation/4.1.6/ba078112b19834cbe716321a79d2039e01c89b1b/micronaut-context-propagation-4.1.6.jar example.micronaut.ApplicationKt
| \/ (_) | | | |\/| | |/ | '/ | ' \ / ` | | | | | | | | | | (| | | () | | | | (| | || | | || |||_|_| _/|| ||_,|_,|\| 20:18:52.607 [main] INFO i.m.c.DefaultApplicationContext$RuntimeConfiguredEnvironment - Established active environments: [dev] 20:18:52.609 [main] INFO i.m.c.DefaultApplicationContext$BootstrapEnvironment - Established active environments: [dev] 20:18:52.618 [main] INFO i.m.context.DefaultBeanContext - Reading bootstrap environment configuration 20:18:53.126 [main] INFO io.micronaut.runtime.Micronaut - Startup completed in 730ms. Server Running: http://localhost:8080 20:19:03.140 [default-nioEventLoopGroup-1-2] WARN i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception. io.netty.handler.timeout.ReadTimeoutException: null 20:19:09.167 [default-nioEventLoopGroup-1-3] WARN i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception. io.netty.handler.timeout.ReadTimeoutException: null 20:19:18.178 [default-nioEventLoopGroup-1-4] WARN i.n.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception. io.netty.handler.timeout.ReadTimeoutException: null 20:19:20.195 [default-nioEventLoopGroup-1-5] ERROR i.m.d.registration.AutoRegistration - Error occurred during service registration with Consul: Error encoding object [io.micronaut.discovery.consul.client.v1.NewServiceEntry@9a176cd9] to JSON: No serializable introspection present for type Inet4Address. Consider adding Serdeable. Serializable annotate to type Inet4Address. Alternatively if you are not in control of the project's source code, you can use @SerdeImport(Inet4Address.class) to enable serialization of this type. io.micronaut.http.codec.CodecException: Error encoding object [io.micronaut.discovery.consul.client.v1.NewServiceEntry@9a176cd9] to JSON: No serializable introspection present for type Inet4Address. Consider adding Serdeable. Serializable annotate to type Inet4Address. Alternatively if you are not in control of the project's source code, you can use @SerdeImport(Inet4Address.class) to enable serialization of this type. at io.micronaut.json.body.JsonMessageHandler.decorateWrite(JsonMessageHandler.java:127) at io.micronaut.json.body.JsonMessageHandler.writeTo(JsonMessageHandler.java:136) at io.micronaut.http.body.MessageBodyWriter.writeTo(MessageBodyWriter.java:138) at io.micronaut.http.netty.body.NettyJsonHandler.writeTo(NettyJsonHandler.java:133) at io.micronaut.http.body.DynamicMessageBodyWriter.writeTo(DynamicMessageBodyWriter.java:79) at io.micronaut.http.client.netty.DefaultHttpClient.buildNettyRequest(DefaultHttpClient.java:1326) at io.micronaut.http.client.netty.DefaultHttpClient.sendRequestThroughChannel(DefaultHttpClient.java:1468) at io.micronaut.http.client.netty.DefaultHttpClient.lambda$exchangeImpl$26(DefaultHttpClient.java:1102) at reactor.core.publisher.FluxCreate.subscribe(FluxCreate.java:95) at reactor.core.publisher.Flux.subscribe(Flux.java:8773) at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onNext(MonoFlatMapMany.java:195) at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) at io.micronaut.http.client.netty.CancellableMonoSink.tryForward(CancellableMonoSink.java:69) at io.micronaut.http.client.netty.CancellableMonoSink.tryEmitValue(CancellableMonoSink.java:86) at io.micronaut.http.client.netty.ConnectionManager$Pool$ConnectionHolder.emitPoolHandle(ConnectionManager.java:1155) at io.micronaut.http.client.netty.ConnectionManager$Pool$Http1ConnectionHolder.dispatch0(ConnectionManager.java:1308) at io.micronaut.http.client.netty.ConnectionManager$Pool$ConnectionHolder.dispatch(ConnectionManager.java:1179) at io.micronaut.http.client.netty.PoolResizer.dispatchSafe(PoolResizer.java:169) at io.micronaut.http.client.netty.PoolResizer.doSomeWork(PoolResizer.java:115) at io.micronaut.http.client.netty.PoolResizer.dirty(PoolResizer.java:77) at io.micronaut.http.client.netty.PoolResizer.onNewConnectionEstablished1(PoolResizer.java:208) at io.micronaut.http.client.netty.ConnectionManager$Pool$Http1ConnectionHolder.init(ConnectionManager.java:1248) at io.micronaut.http.client.netty.ConnectionManager$Pool$2$1.channelActive(ConnectionManager.java:1038) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:262) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238) at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:231) at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelActive(CombinedChannelDuplexHandler.java:412) at io.netty.channel.ChannelInboundHandlerAdapter.channelActive(ChannelInboundHandlerAdapter.java:69) at io.netty.channel.CombinedChannelDuplexHandler.channelActive(CombinedChannelDuplexHandler.java:211) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:260) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238) at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:231) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelActive(DefaultChannelPipeline.java:1398) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:258) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:238) at io.netty.channel.DefaultChannelPipeline.fireChannelActive(DefaultChannelPipeline.java:895) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:305) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:335) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) 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 java.base/java.lang.Thread.run(Thread.java:833) Caused by: io.micronaut.serde.exceptions.SerdeException: No serializable introspection present for type Inet4Address. Consider adding Serdeable. Serializable annotate to type Inet4Address. Alternatively if you are not in control of the project's source code, you can use @SerdeImport(Inet4Address.class) to enable serialization of this type. at io.micronaut.serde.support.serializers.ObjectSerializer$4.tryToFindSerializer(ObjectSerializer.java:218) at io.micronaut.serde.support.serializers.ObjectSerializer$RuntimeTypeSerializer.lambda$getSerializer$0(ObjectSerializer.java:280) at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708) at io.micronaut.serde.support.serializers.ObjectSerializer$RuntimeTypeSerializer.getSerializer(ObjectSerializer.java:278) at io.micronaut.serde.support.serializers.ObjectSerializer$RuntimeTypeSerializer.serialize(ObjectSerializer.java:245) at io.micronaut.serde.support.serializers.ObjectSerializer$RuntimeTypeSerializer.serialize(ObjectSerializer.java:245) at io.micronaut.serde.support.serializers.OptionalSerializer$1.serialize(OptionalSerializer.java:63) at io.micronaut.serde.support.serializers.OptionalSerializer$1.serialize(OptionalSerializer.java:51) at io.micronaut.serde.support.serializers.CustomizedObjectSerializer.serialize(CustomizedObjectSerializer.java:132) at io.micronaut.serde.support.serializers.ObjectSerializer$RuntimeTypeSerializer.serialize(ObjectSerializer.java:245) at io.micronaut.serde.jackson.JacksonJsonMapper.writeValue(JacksonJsonMapper.java:114) at io.micronaut.serde.jackson.JacksonJsonMapper.writeValue(JacksonJsonMapper.java:193) at io.micronaut.json.body.JsonMessageHandler.writeTo(JsonMessageHandler.java:134) ... 45 common frames omitted Caused by: io.micronaut.core.beans.exceptions.IntrospectionException: No serializable introspection present for type Inet4Address. Consider adding Serdeable. Serializable annotate to type Inet4Address. Alternatively if you are not in control of the project's source code, you can use @SerdeImport(Inet4Address.class) to enable serialization of this type. at io.micronaut.serde.support.DefaultSerdeIntrospections.getSerializableIntrospection(DefaultSerdeIntrospections.java:102) at io.micronaut.serde.support.serializers.SerBean.(SerBean.java:107)
at io.micronaut.serde.support.serializers.ObjectSerializer.create(ObjectSerializer.java:202)
at io.micronaut.serde.support.serializers.ObjectSerializer.lambda$getSerBean$0(ObjectSerializer.java:193)
at io.micronaut.core.util.SupplierUtil$2.get(SupplierUtil.java:79)
at io.micronaut.serde.support.serializers.ObjectSerializer.getSerBean(ObjectSerializer.java:194)
at io.micronaut.serde.support.serializers.ObjectSerializer.createSpecificInternal(ObjectSerializer.java:93)
at io.micronaut.serde.support.serializers.ObjectSerializer.createSpecific(ObjectSerializer.java:86)
at io.micronaut.serde.support.serializers.ObjectSerializer$RuntimeTypeSerializer.tryToFindSerializer(ObjectSerializer.java:296)
at io.micronaut.serde.support.serializers.ObjectSerializer$4.tryToFindSerializer(ObjectSerializer.java:216)
at io.micronaut.serde.support.serializers.ObjectSerializer$RuntimeTypeSerializer.lambda$getSerializer$0(ObjectSerializer.java:280)
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
at io.micronaut.serde.support.serializers.ObjectSerializer$RuntimeTypeSerializer.getSerializer(ObjectSerializer.java:278)
at io.micronaut.serde.support.serializers.ObjectSerializer$RuntimeTypeSerializer.isEmpty(ObjectSerializer.java:256)
at io.micronaut.serde.support.serializers.OptionalSerializer$1.isEmpty(OptionalSerializer.java:77)
at io.micronaut.serde.support.serializers.OptionalSerializer$1.isEmpty(OptionalSerializer.java:51)
at io.micronaut.serde.support.serializers.CustomizedObjectSerializer.serialize(CustomizedObjectSerializer.java:100)
... 49 common frames omitted
20:20:03.761 [parallel-4] ERROR i.m.m.health.indicator.HealthResult - Health indicator [compositeDiscoveryClient(consul)] reported exception: io.micronaut.http.client.exceptions.ReadTimeoutException: Read Timeout
io.micronaut.http.client.exceptions.ReadTimeoutException: Read Timeout
at io.micronaut.http.client.exceptions.ReadTimeoutException.(ReadTimeoutException.java:26)
at io.micronaut.http.client.netty.DefaultHttpClient.lambda$exchangeImpl$28(DefaultHttpClient.java:1135)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94)
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:295)
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:280)
at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:419)
at reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162)
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:271)
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:286)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
20:20:31.239 [default-nioEventLoopGroup-1-5] ERROR i.m.d.registration.AutoRegistration - Error occurred de-registering service [bookrecommendation] with Consul: Read Timeout
io.micronaut.http.client.exceptions.ReadTimeoutException: Read Timeout
at io.micronaut.http.client.exceptions.ReadTimeoutException.(ReadTimeoutException.java:26)
at io.micronaut.http.client.netty.DefaultHttpClient.lambda$exchangeImpl$28(DefaultHttpClient.java:1135)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94)
at reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.handleTimeout(FluxTimeout.java:295)
at reactor.core.publisher.FluxTimeout$TimeoutMainSubscriber.doTimeout(FluxTimeout.java:280)
at reactor.core.publisher.FluxTimeout$TimeoutTimeoutSubscriber.onNext(FluxTimeout.java:419)
at reactor.core.publisher.FluxOnErrorReturn$ReturnSubscriber.onNext(FluxOnErrorReturn.java:162)
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.propagateDelay(MonoDelay.java:271)
at reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:286)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
20:20:31.367 [default-nioEventLoopGroup-1-23] ERROR i.m.h.client.netty.DefaultHttpClient - Failed to connect to remote
java.lang.IllegalStateException: executor not accepting a task
at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:61)
at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:208)
at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:189)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:175)
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:990)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
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 java.base/java.lang.Thread.run(Thread.java:833)
20:20:31.367 [default-nioEventLoopGroup-1-21] ERROR i.m.h.client.netty.DefaultHttpClient - Failed to connect to remote
java.lang.IllegalStateException: executor not accepting a task
at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:61)
at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:208)
at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:189)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:175)
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:990)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
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 java.base/java.lang.Thread.run(Thread.java:833)
20:20:31.369 [default-nioEventLoopGroup-1-24] ERROR i.m.h.client.netty.DefaultHttpClient - Failed to connect to remote
java.lang.IllegalStateException: executor not accepting a task
at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:61)
at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:208)
at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:189)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:175)
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:990)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
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 java.base/java.lang.Thread.run(Thread.java:833)
20:20:31.370 [default-nioEventLoopGroup-1-22] ERROR i.m.h.client.netty.DefaultHttpClient - Failed to connect to remote
java.lang.IllegalStateException: executor not accepting a task
at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:61)
at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:208)
at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:189)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:175)
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:990)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
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 java.base/java.lang.Thread.run(Thread.java:833)
20:20:31.371 [default-nioEventLoopGroup-1-25] ERROR i.m.h.client.netty.DefaultHttpClient - Failed to connect to remote
java.lang.IllegalStateException: executor not accepting a task
at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:61)
at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:208)
at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:189)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:175)
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:990)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
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 java.base/java.lang.Thread.run(Thread.java:833)
20:20:31.372 [default-nioEventLoopGroup-1-27] ERROR i.m.h.client.netty.DefaultHttpClient - Failed to connect to remote
java.lang.IllegalStateException: executor not accepting a task
at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:61)
at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:208)
at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:189)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:175)
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:990)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
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 java.base/java.lang.Thread.run(Thread.java:833)
20:20:31.372 [default-nioEventLoopGroup-1-29] ERROR i.m.h.client.netty.DefaultHttpClient - Failed to connect to remote
java.lang.IllegalStateException: executor not accepting a task
at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:61)
at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:208)
at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:189)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:175)
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:990)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
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 java.base/java.lang.Thread.run(Thread.java:833)
20:20:31.470 [default-nioEventLoopGroup-1-28] ERROR i.m.h.client.netty.DefaultHttpClient - Failed to connect to remote
java.lang.IllegalStateException: executor not accepting a task
at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:61)
at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:208)
at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:189)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:175)
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:990)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
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 java.base/java.lang.Thread.run(Thread.java:833)
20:20:31.470 [default-nioEventLoopGroup-1-26] ERROR i.m.h.client.netty.DefaultHttpClient - Failed to connect to remote
java.lang.IllegalStateException: executor not accepting a task
at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:61)
at io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:208)
at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:189)
at io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:175)
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:990)
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516)
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
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 java.base/java.lang.Thread.run(Thread.java:833)
20:20:34.326 [Thread-0] INFO io.micronaut.runtime.Micronaut - Embedded Application shutting down
Process finished with exit code 0
Steps To Reproduce
brew tap hashicorp/tap
brew install hashicorp/tap/consul
consul agent -dev
Environment Information
JDK java --version openjdk 17.0.8 2023-07-18 LTS OpenJDK Runtime Environment Corretto-17.0.8.7.1 (build 17.0.8+7-LTS) OpenJDK 64-Bit Server VM Corretto-17.0.8.7.1 (build 17.0.8+7-LTS, mixed mode, sharing)
OSX - Sonoma 14
Micronaut consul tutorial
https://guides.micronaut.io/latest/micronaut-microservices-services-discover-consul-gradle-kotlin.html https://guides.micronaut.io/latest/micronaut-microservices-services-discover-consul-maven-java.html Both fail
I also have an app on github below that fails in the same manner. There are 2 standalone grpc servers on that code, both have the same failures
I also tried running consul as local docker deploy. Same result
Furthermore, I get a similar error when trying Eureka
Example Application
https://github.com/krickert/search_indexer
Version
mn -V: Micronaut Version: 4.1.3