如何调试错误“io.netty.channel.AbstractChannel.close(ChannelPromise)(未知来源)”

问题描述 投票:0回答:1

我有一个 Kubernetes 设置。 Pod A 正在与 Cassandra Pod 通信。

  • 卡桑德拉版本:4.1.5
  • 节点驱动程序客户端:4.6.3

有时 Cassandra 会变得不可用。我查看了 Cassandra 日志,看到了以下日志:

WARN  [epollEventLoopGroup-5-2] 2024-09-30 10:10:12,093 ExceptionHandlers.java:139 - Unknown exception in client networking                                                                                                       
io.netty.channel.StacklessClosedChannelException: null

我检查了内存/堆内存和CPU消耗,它们没有被过度使用。

这个问题听起来确实很笼统,但也许有经验的人可以指出我需要看的地方。

我需要在 Cassandra 中调试什么才能了解为什么收到此错误?

cassandra netty datastax-node-driver
1个回答
0
投票

正如您所指出的,您的问题非常笼统,所以我只能给出一般性答复。

当驱动程序报告 Cassandra 不可用时,您需要密切关注 (1) 完整错误消息和 (2) 完整堆栈跟踪,因为这 2 个详细信息的组合将为您提供需要调查的线索.

需要注意的是,有时,由于网络中断或网络连接问题,Cassandra 集群本身可能无法访问,因此在服务器端进行调查是毫无意义的。同样,错误消息和堆栈跟踪是必要的,因为它可以提供洞察力。

如果您认为问题出在集群中的某个节点上,那么您需要放大并分析日志条目 (3),其时间与上面驱动程序登录 (1) 的时间相同,以及之前的几行它。一旦您确定了服务器端 (4) 完整错误消息和 (5) 完整堆栈跟踪,这些将为您提供下一组线索,从而确定您调查的后续步骤。

提出问题时提供足够的细节非常重要,因为它可以帮助像我这样的贡献者为您提供最佳答复。如果您有兴趣,我写了一篇文章 询问 Cassandra 的好问题,该文章已发布在 Apache Cassandra 官方网站上,还有 Stack Overflow 的 如何提出好问题。干杯!

© www.soinside.com 2019 - 2024. All rights reserved.