问题遇到的现象和发生背景
背景:本人22届毕业生一枚,最近公司做grpc负载均衡的有关升级,给了升级步骤文档。目前已经成功升级了两个项目,还剩一个项目出现了非常棘手的报错。
用代码块功能插入代码,请勿粘贴截图
运行结果及报错内容
马赛克位置为连接服务的地址
java.lang.AssertionError: io.grpc.ManagedChannelRegistry$ProviderNotFoundException: io.grpc.netty.NettyChannelProvider: does not support 1 or more of [class io.netty.channel.unix.DomainSocketAddress]; io.grpc.okhttp.OkHttpChannelProvider: does not support 1 or more of [class io.netty.channel.unix.DomainSocketAddress]
at io.grpc.xds.ClientXdsClient$1.uncaughtException(ClientXdsClient.java:207) ~[grpc-xds-1.48.0.jar!/:1.48.0]
at io.grpc.SynchronizationContext.drain(SynchronizationContext.java:97) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.SynchronizationContext.execute(SynchronizationContext.java:127) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.xds.ClientXdsClient.watchLdsResource(ClientXdsClient.java:2134) ~[grpc-xds-1.48.0.jar!/:1.48.0]
at io.grpc.xds.XdsNameResolver$ResolveState.start(XdsNameResolver.java:759) ~[grpc-xds-1.48.0.jar!/:1.48.0]
at io.grpc.xds.XdsNameResolver$ResolveState.access$200(XdsNameResolver.java:685) ~[grpc-xds-1.48.0.jar!/:1.48.0]
at io.grpc.xds.XdsNameResolver.start(XdsNameResolver.java:209) ~[grpc-xds-1.48.0.jar!/:1.48.0]
at io.grpc.internal.ManagedChannelImpl.exitIdleMode(ManagedChannelImpl.java:418) [grpc-core-1.48.0.jar!/:1.48.0]
at io.grpc.internal.ManagedChannelImpl$RealChannel$2.run(ManagedChannelImpl.java:980) ~[grpc-core-1.48.0.jar!/:1.48.0]
at io.grpc.SynchronizationContext.drain(SynchronizationContext.java:95) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.SynchronizationContext.execute(SynchronizationContext.java:127) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.internal.ManagedChannelImpl$RealChannel.newCall(ManagedChannelImpl.java:977) [grpc-core-1.48.0.jar!/:1.48.0]
at io.grpc.internal.ManagedChannelImpl.newCall(ManagedChannelImpl.java:919) [grpc-core-1.48.0.jar!/:1.48.0]
at io.grpc.internal.ForwardingManagedChannel.newCall(ForwardingManagedChannel.java:63) [grpc-core-1.48.0.jar!/:1.48.0]
at com.wanfangdata.gateway.interceptor.HeaderClientInterceptor.interceptCall(HeaderClientInterceptor.java:32) [grpc-client-interceptor-starter-1.2022.18.jar!/:1.0-SNAPSHOT]
at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:156) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:150) [grpc-stub-1.48.0.jar!/:1.48.0]
at com.wanfangdata.search.SearchGrpc$SearchBlockingStub.query(SearchGrpc.java:334) [resource-schemas-1.2020.34.jar!/:na]
at com.wanfangdata.miner.client.SearchClient.search(SearchClient.java:36) [core-1.0-SNAPSHOT.jar!/:1.0-SNAPSHOT]
at com.wanfangdata.miner.rdd.SolrRDD$SolrRddSelect.select(SolrRDD.java:295) [core-1.0-SNAPSHOT.jar!/:1.0-SNAPSHOT]
at com.wanfangdata.miner.scholar.ScholarServer.getScholarRelevant(ScholarServer.java:124) [scholar-1.0-SNAPSHOT.jar!/:1.0-SNAPSHOT]
at com.wanfangdata.miner.scholar.service.ScholarServiceImpl.getScholarRelevant(ScholarServiceImpl.java:46) [scholar-1.0-SNAPSHOT.jar!/:1.0-SNAPSHOT]
at com.wanfangdata.miner.ScholarGrpc$MethodHandlers.invoke(ScholarGrpc.java:3148) [api-1.0-SNAPSHOT.jar!/:1.0-SNAPSHOT]
at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182) [grpc-stub-1.48.0.jar!/:1.48.0]
at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.Contexts$ContextualizedServerCallListener.onHalfClose(Contexts.java:86) [grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:354) [grpc-core-1.48.0.jar!/:1.48.0]
at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:866) [grpc-core-1.48.0.jar!/:1.48.0]
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) [grpc-core-1.48.0.jar!/:1.48.0]
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) [grpc-core-1.48.0.jar!/:1.48.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_282]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_282]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_282]
Caused by: io.grpc.ManagedChannelRegistry$ProviderNotFoundException: io.grpc.netty.NettyChannelProvider: does not support 1 or more of [class io.netty.channel.unix.DomainSocketAddress]; io.grpc.okhttp.OkHttpChannelProvider: does not support 1 or more of [class io.netty.channel.unix.DomainSocketAddress]
at io.grpc.ManagedChannelRegistry.newChannelBuilder(ManagedChannelRegistry.java:206) ~[grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.ManagedChannelRegistry.newChannelBuilder(ManagedChannelRegistry.java:157) ~[grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.Grpc.newChannelBuilder(Grpc.java:101) ~[grpc-api-1.48.0.jar!/:1.48.0]
at io.grpc.xds.ClientXdsClient$XdsChannelFactory$1.create(ClientXdsClient.java:2731) ~[grpc-xds-1.48.0.jar!/:1.48.0]
at io.grpc.xds.AbstractXdsClient.<init>(AbstractXdsClient.java:119) ~[grpc-xds-1.48.0.jar!/:1.48.0]
at io.grpc.xds.ClientXdsClient.maybeCreateXdsChannelWithLrs(ClientXdsClient.java:265) ~[grpc-xds-1.48.0.jar!/:1.48.0]
at io.grpc.xds.ClientXdsClient.access$2300(ClientXdsClient.java:134) ~[grpc-xds-1.48.0.jar!/:1.48.0]
at io.grpc.xds.ClientXdsClient$ResourceSubscriber.<init>(ClientXdsClient.java:2469) ~[grpc-xds-1.48.0.jar!/:1.48.0]
at io.grpc.xds.ClientXdsClient$4.run(ClientXdsClient.java:2140) ~[grpc-xds-1.48.0.jar!/:1.48.0]
at io.grpc.SynchronizationContext.drain(SynchronizationContext.java:95) [grpc-api-1.48.0.jar!/:1.48.0]
... 36 common frames omitted
2022-10-25 14:08:44.187 WARN 7 --- [ault-executor-0] io.grpc.internal.ServerCallImpl : Cancelling the stream with status Status{code=INTERNAL, description=Completed without a response, cause=null}
Exception in thread "grpc-default-executor-0" java.lang.AssertionError: java.lang.NullPointerException
at io.grpc.xds.ClientXdsClient$1.uncaughtException(ClientXdsClient.java:207)
at io.grpc.SynchronizationContext.drain(SynchronizationContext.java:97)
at io.grpc.SynchronizationContext.execute(SynchronizationContext.java:127)
at io.grpc.xds.ClientXdsClient.cancelLdsResourceWatch(ClientXdsClient.java:2153)
at io.grpc.xds.XdsNameResolver$ResolveState.stop(XdsNameResolver.java:766)
at io.grpc.xds.XdsNameResolver$ResolveState.access$300(XdsNameResolver.java:685)
at io.grpc.xds.XdsNameResolver.shutdown(XdsNameResolver.java:220)
at io.grpc.internal.ManagedChannelImpl.shutdownNameResolverAndLoadBalancer(ManagedChannelImpl.java:371)
at io.grpc.internal.ManagedChannelImpl.panic(ManagedChannelImpl.java:862)
at io.grpc.internal.ManagedChannelImpl$2.uncaughtException(ManagedChannelImpl.java:186)
at io.grpc.SynchronizationContext.drain(SynchronizationContext.java:97)
at io.grpc.SynchronizationContext.execute(SynchronizationContext.java:127)
at io.grpc.internal.ManagedChannelImpl$RealChannel.newCall(ManagedChannelImpl.java:977)
at io.grpc.internal.ManagedChannelImpl.newCall(ManagedChannelImpl.java:919)
at io.grpc.internal.ForwardingManagedChannel.newCall(ForwardingManagedChannel.java:63)
at com.wanfangdata.gateway.interceptor.HeaderClientInterceptor.interceptCall(HeaderClientInterceptor.java:32)
at io.grpc.ClientInterceptors$InterceptorChannel.newCall(ClientInterceptors.java:156)
at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:150)
at com.wanfangdata.search.SearchGrpc$SearchBlockingStub.query(SearchGrpc.java:334)
at com.wanfangdata.miner.client.SearchClient.search(SearchClient.java:36)
at com.wanfangdata.miner.rdd.SolrRDD$SolrRddSelect.select(SolrRDD.java:295)
at com.wanfangdata.miner.scholar.ScholarServer.getScholarRelevant(ScholarServer.java:124)
at com.wanfangdata.miner.scholar.service.ScholarServiceImpl.getScholarRelevant(ScholarServiceImpl.java:46)
at com.wanfangdata.miner.ScholarGrpc$MethodHandlers.invoke(ScholarGrpc.java:3148)
at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182)
at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35)
at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23)
at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40)
at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35)
at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23)
at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40)
at io.grpc.Contexts$ContextualizedServerCallListener.onHalfClose(Contexts.java:86)
at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:354)
at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:866)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at io.grpc.xds.ClientXdsClient$5.run(ClientXdsClient.java:2157)
at io.grpc.SynchronizationContext.drain(SynchronizationContext.java:95)
... 37 more
我的解答思路和尝试过的方法
我们进行升级的时候,将grpc版本升级到了1.48.0,protobuf的版本升级到了3.21.1,grpc-client-spring-boot-starter升级到了2.12.0,然后引进了xds依赖,项目部署在k8s上,对k8s部署文件也进行了配置。目前前两个项目都顺利配置成功,到了这个项目,无论版本怎么升级,总是报这一个错,本地启动也没问题。does not support 1 or more of [class io.netty.channel.unix.DomainSocketAddress]
经查看,DomainSocketAddress所在的包的版本为4.1.63Final,而已经成功的前两个项目此包的版本为4
.1.58Final,但同样都是将grpc版本升级到了1.48,也没指定过这个包的版本,不知道为什么自动引入了4.1.63,而不是58版本。是否跟这里有关系呢?
我想要达到的结果
请问有没有人帮忙指点一下~万分感谢!!