You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow 2.4.0 UI出现幽灵DAG Runs问题求助

幽灵DAG Runs问题分析与解决

这些条目是什么?

这是Airflow 2.3.x升级到2.4.x版本时的已知UI缓存/元数据同步BUG,根源在于:

  • 升级后Webserver的本地缓存未自动失效,导致显示了早已被清理或从未真正写入数据库的DAG Run记录
  • 2.4.0版本对DAG Run状态跟踪逻辑做了调整,UI层残留了旧的状态数据
  • 调度器与Webserver之间的元数据同步延迟,导致两边状态不一致

清除步骤(按顺序执行)

1. 清空Webserver缓存

Webserver会缓存DAG相关数据,直接清理缓存并重启:

# 停止Webserver(根据部署方式调整命令,如systemd或docker)
systemctl stop airflow-webserver
# 删除缓存目录(默认路径,部署路径不同需修改)
rm -rf /usr/local/airflow/webserver_cache/*
# 重启Webserver
systemctl start airflow-webserver

2. 用CLI刷新元数据+清理无效条目

通过Airflow命令行工具强制同步元数据,并清理数据库中不存在的DAG Run:

# 刷新所有DAG的元数据
airflow dags refresh
# 清理无效DAG Run(--skip-archive表示直接删除,无需归档,按需使用)
airflow db clean --verbose --skip-archive --dag-ran-only

3. 重启调度器

如果问题仍存在,重启调度器让它重新同步数据库状态:

systemctl stop airflow-scheduler
systemctl start airflow-scheduler

可查看调度器日志排查同步报错:

tail -f /var/log/airflow/scheduler.log

4. 直接操作数据库(极端情况)

前面方法无效时,直接清理数据库里的UI缓存表(以PostgreSQL为例,其他数据库语法类似):

-- 清空DAG状态缓存表
TRUNCATE TABLE dag_stat;
-- 删除没有对应任务实例的DAG Run条目
DELETE FROM dag_run WHERE run_id NOT IN (SELECT run_id FROM task_instance GROUP BY run_id);

重要:操作数据库前务必备份!执行完重启所有Airflow组件。

后续预防

  • 升级Airflow时,先停掉所有组件(Webserver、Scheduler、Worker),执行airflow db upgrade完成迁移后再重启
  • 定期清理Webserver缓存目录,避免旧数据堆积
  • 尽量升级到2.4.x的补丁版本(如2.4.3及以上),官方已修复部分元数据同步问题

内容的提问来源于stack exchange,提问作者MrBronson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:30:52