【Java类初始化死锁】记一次Cassandra死锁问题排查

郭泽晖 2019-09-12

分布式 Java核心技术 java 线程 源码 数据库 Image Cassandra

背景

最近压测Cassandra的时候,发现一个Cassandra进程一直没有完成初始化。经过排查后发现是死锁问题,这篇文章将会带领大家回顾整个排查过程,学习如何排查Java死锁问题,是一个非常值得学习的经验。

调查过程

1.问题发现

首先是启动后,通过Cassandra命令nodetool netstats观察何时进入NORMAL状态。如下图所示:
image
但是过了很久都没有进入NORMAL,一直处于STARTING状态。

2.jstack排查

想要知道为啥一直处于STARTING状态,当然是用Jstack去观察进程到底在做什么。
image

jstack显示主线程处于WAITING状态。这符合我们观察到的现象,因为确实一直卡在STARTING状态没有走下去。使主线程卡住的地方是
AbstractCommitLogSegmentManager.awaitAvaila

登录 后评论
下一篇
云攻略小攻
2035人浏览
2019-10-21
相关推荐
Java工程师成神之路
1048人浏览
2018-05-02 19:09:00
类初始化造成的死锁
389人浏览
2018-03-05 23:19:00
java线上服务问题排查总结
43261人浏览
2018-12-06 10:35:23
1
0
0
1333