现象:
应用接口504,应用日志停止在7:39,java进程还在。
分析:
业务日志停在7:39,9点多收到问题,进行了一次jstack。但jstack报错
Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
加上-F参数,成功了,看jstack日志里显示有BLOCKED的线程,对应源代码59行显示
还有一个BLCOKED的是 http调用第三方接口
怎么回事儿?关键是执行完jstack -F后假死的进程又死灰复燃了。。。日志也正常了,接口也正常了,jstack -F 机制是啥?
deepseek给出建议,下次jstack需要间隔5-10秒进行3次,进行对比,可以找出BLCOKED等待的锁到底是哪个线程持有的。