反思

其实这个问题并不复杂,但由于自己的思路不对、网上并没有此现象的对应解释,导致耗费的时间较长。为了避免后人采坑,故分享。

现象

Jenkins(2.89.4)的pipeline偶现stuck。
image.png

调查过程

可能原因

内存?并发?IO load过高? slave磁盘吃紧?sessionTimeout?pipeline使用姿势不对?GC?
执拗于上述可能原因一段时间无果后,只能threadDump了

threadDump

jstack pid > threadDump.txt
借助thread分析工具(PS: 居然还有火焰图),可以很清晰的看到线程处于RUNNABLE(死循环/狂吃CPU)
image.png

其实,有了这个图也就差不多了:blueocean所调用的WeakHashMap有问题。

根本原因

blueocean(1.5.0)的代码bug,下图是其changeLog
image.png

参考