记录一个logback导致程序卡死问题

0

今天遇到一个非常奇葩的BUG

使用命令jstack查看线程信息全部卡在AsyncAppenderBase里面的put方法里面,一开始怎么也想不明白,还以为是磁盘坏了。
后来查看线程AsyncAppender-Worker-*只有infoerror没有debug,估计是debug异常退出导致没有消费。
查看代码发现Worker果然在InterruptedException异常时会退出,使用jmap查看Worker对象有三个,线程只有两个,说明debug确实退出了。
后来发现原来是启动服务不是使用systemctl启动,而是直接控制台启动的,然后控制台退了导致中断异常导致。