Airflow DAG的Dummy Operator报upstream_failed错误排查咨询
可能的故障原因
- 上游
watch_step任务静默失败:watch_step通常为EMR步骤状态监听的Sensor类任务,若任务运行过程中Airflow Worker节点发生OOM被系统强制杀进程、或Worker节点被主动下线重启,任务进程会被直接中断,日志来不及刷写到存储导致无日志留存,最终被标记为失败,触发下游all_steps_finished的upstream_failed状态。 - 元数据库状态同步异常:Airflow调度器和元数据库(MySQL/PostgreSQL)连接闪断、或元数据库负载过高导致事务提交失败时,可能出现
watch_step实际运行成功,但任务成功状态未写入元数据库的情况,调度器会误判上游任务失败,给下游标记upstream_failed。 - DAG运行超时触发连锁终止:你的DAG配置了
dagrun_timeout=dt.timedelta(hours=2),如果全链路任务运行时长刚好触碰到2小时阈值,整个DAG运行会被强制终止,未完成的上游任务直接被标记为失败,下游all_steps_finished同步触发上游失败状态,且被强制终止的任务大概率无完整日志。 - 隐性依赖任务失败:若
compose_dag_for_ltc函数内部给watch_step配置了代码里没有显式写出来的隐藏上游依赖,这些隐藏依赖偶发失败时,也会触发all_steps_finished的upstream_failed,排查时容易忽略非显式链路的依赖状态。 - API偶发故障+日志采集丢失:如果你的日志是存储在远端对象存储中,
watch_step调用EMR OpenAPI时偶发遇到限流、服务端5xx错误,重试次数耗尽后任务失败,而日志还没来得及上传到远端存储就被Worker本地清理,就会出现无日志的情况。
内容的提问来源于stack exchange,提问作者CyberPunk
相关产品推荐
相关产品推荐

