问题描述/异常栈

    某一个spark任务之前运行很短时间,突然有一个stage时间很长卡住

    解决方案

    首先找到卡住运行不完的stage,点击进去查看task并排序。
    FAQ-stage长时间卡住Monitor(sun.security.jca.Provider - 图1
    点击stage的description并排序
    FAQ-stage长时间卡住Monitor(sun.security.jca.Provider - 图2
    可以看到running不动的均来自同一个host。这个时候可以大概判定,这个节点有问题。没有排查节点的条件的话,可以先让用户开启推测执行重跑,或者直接重跑。大概率是可以绕开这个问题。
    后查看堆栈信息。例如我这个问题。可以看到
    FAQ-stage长时间卡住Monitor(sun.security.jca.Provider - 图3
    有明显的死锁现象。且有报错信息。
    确认后发现是jdk的bug,https://bugs.openjdk.java.net/browse/JDK-8220367
    这时可以确认,3998这个节点的jdk版本有bug导致死锁。故重跑或者开启推测执行,是可行的。

    问题原因

    如上,后续需要推动集群jdk版本的升级。

    作者:刘思伟