java.net.SocketException:无效参数:与 BungeeCord 连接

2024-05-15

我编写了一个使用 gRPC 连接到服务器的 Java 依赖项。在我的 spigot 插件和普通 java 项目中使用此依赖关系工作正常,但在 BungeeCord 插件中使用它会产生以下异常:

Caused by: io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: connect(..) failed: Invalid argument: /www.google.com
Caused by: java.net.ConnectException: connect(..) failed: Invalid argument
     at io.grpc.netty.shaded.io.netty.channel.unix.Errors.newConnectException0(Errors.java:155)
     at io.grpc.netty.shaded.io.netty.channel.unix.Errors.handleConnectErrno(Errors.java:128)
     at io.grpc.netty.shaded.io.netty.channel.unix.Socket.connect(Socket.java:312)
     at io.grpc.netty.shaded.io.netty.channel.epoll.AbstractEpollChannel.doConnect0(AbstractEpollChannel.java:773)
     at io.grpc.netty.shaded.io.netty.channel.epoll.EpollSocketChannel.doConnect0(EpollSocketChannel.java:138)
     at io.grpc.netty.shaded.io.netty.channel.epoll.AbstractEpollChannel.doConnect(AbstractEpollChannel.java:758)
     at io.grpc.netty.shaded.io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.connect(AbstractEpollChannel.java:600)
     at io.grpc.netty.shaded.io.netty.channel.DefaultChannelPipeline$HeadContext.connect(DefaultChannelPipeline.java:1342)
     at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeConnect(AbstractChannelHandlerContext.java:548)
     at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.connect(AbstractChannelHandlerContext.java:533)
     at io.grpc.netty.shaded.io.netty.channel.ChannelDuplexHandler.connect(ChannelDuplexHandler.java:54)
     at io.grpc.netty.shaded.io.grpc.netty.WriteBufferingAndExceptionHandler.connect(WriteBufferingAndExceptionHandler.java:157)
     at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeConnect(AbstractChannelHandlerContext.java:548)
     at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext.access$1000(AbstractChannelHandlerContext.java:61)
     at io.grpc.netty.shaded.io.netty.channel.AbstractChannelHandlerContext$9.run(AbstractChannelHandlerContext.java:538)
     at io.grpc.netty.shaded.io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
     at io.grpc.netty.shaded.io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
     at io.grpc.netty.shaded.io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:387)
     at io.grpc.netty.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
     at io.grpc.netty.shaded.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
     at io.grpc.netty.shaded.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
     at java.lang.Thread.run(Thread.java:748)

我尝试过的

我使用完全相同的 java 运行时以及更新的版本对此进行了测试。我也尝试了中的建议java.net.SocketException:无效参数:连接 https://stackoverflow.com/questions/8216713/java-net-socketexception-invalid-argument-connect以及之前提出的类似问题,但所提出的解决方案都不适合我。

最建议使用的修复方法-Djava.net.preferIPv4Stack=true将例外更改为

Caused by: io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException: connect(..) failed: Address family not supported by protocol: /www.google.com
Caused by: java.net.ConnectException: connect(..) failed: Address family not supported by protocol

但我也被困在那里。我已经尝试切换运行此代码的主机,并在服务器 gRPC 端点上启用 IPv4 和 IPv6 支持,但没有成功。www.google.com只是这些例外中的占位符。

我怀疑什么

鉴于它适用于所有其他项目,我怀疑这与 BungeeCord 有关。据我调查,BungeeCord 本身并不使用 gRPC(我可能是错的)。搬迁io.grpc.netty.shaded.io.netty不幸的是,maven 不适用于我(也许是因为它已经搬迁了?)。

经过两天的尝试,我已经超出了我的深度,不知道如何进一步调试它。


尝试降低 io.grpc 的版本,例如。到1.30.0,为我工作。 我在使用 jar 打包的 grpc 客户端时遇到了问题,在 IDE 中工作的内容在 jar 中不起作用,-Djava.net.preferIPv4Stack=true只是改变了例外... 当我开始从 k8s pod 跟踪问题时,花了一些时间:/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.net.SocketException:无效参数:与 BungeeCord 连接 的相关文章

随机推荐