FAQ-Task did not exit gracefully within 180 +
更新时间: 2024-03-11 02:43:56
阅读 2383
FAQ-Task did not exit gracefully within 180 +
问题描述/异常栈
org.apache.flink.util.FlinkRuntimeException: Task did not exit gracefully within 180 + seconds.
at org.apache.flink.runtime.taskmanager.Task$TaskCancelerWatchDog.run(Task.java:1709) [flink-dist_2.11-1.12-vvr-3.0.4-SNAPSHOT.jar:1.12-vvr-3.0.4-SNAPSHOT]
at java.lang.Thread.run(Thread.java:834) [?:1.8.0_102]
发现版本
LTS 650
解决方案
注意:task.cancellation.timeout 参数仅用于作业调试,请不要在生产作业上配置该参数值为0。
可以设置Task退出的超时时间参数task.cancellation.timeout取值为0。
配置为0时,Task退出阻塞将不会超时,该task会持续等待退出完成。
重启作业后再次发现作业在Failover或退出过程中长时间阻塞时,需要找到处于Cancelling状态的Task,查看该Task的栈,排查问题的根因,然后根据排查到的根因再针对性解决问题。
问题原因
该报错不是作业异常的根因。因为Task退出的超时task.cancellation.timeout参数的默认值为180s,当作业Failover或退出过程中,可能会因某种原因阻塞Task的退出。
当阻塞时间达到超时时间后,Flink会判定该Task已卡死无法恢复,会主动停止该Task所在的TaskManager,让Failover或退出流程继续下去,所以在日志中会出现这样的报错,需要结合任务完整日志具体分析。
作者:denglaixiang
文档反馈
以上内容对您是否有帮助?