背景
最近压测Cassandra的时候,发现一个Cassandra进程一直没有完成初始化。经过排查后发现是死锁问题,这篇文章将会带领大家回顾整个排查过程,学习如何排查Java死锁问题,是一个非常值得学习的经验。
调查过程
1.问题发现
首先是启动后,通过Cassandra命令nodetool netstats观察何时进入NORMAL状态。如下图所示:
但是过了很久都没有进入NORMAL,一直处于STARTING状态。
2.jstack排查
想要知道为啥一直处于STARTING状态,当然是用Jstack去观察进程到底在做什么。
jstack显示主线程处于WAITING状态。这符合我们观察到的现象,因为确实一直卡在STARTING状态没有走下去。使主线程卡住的地方是AbstractCommitLogSegmentManager.awaitAvaila
继续阅读与本文标签相同的文章
-
中小型企业运维之路
2026-05-18栏目: 教程
-
云原生生态周报 Vol. 19 | Helm 推荐用户转向 V3
2026-05-18栏目: 教程
-
使用自定义指标进行Pod弹性伸缩
2026-05-18栏目: 教程
-
3个点说清楚分库分表扩容问题
2026-05-18栏目: 教程
-
RocketMQ 多副本前置篇:初探raft协议
2026-05-18栏目: 教程
