Airflow1.10.9搭配MariaDB10.4.15时DAG自动禁用是什么原因?
Airflow 1.10.9 搭配 MariaDB 10.4.15 无操作自动禁用DAG的触发原因

- 元数据库事务隔离级别不匹配
Airflow 1.x 所有版本要求配套关系型数据库的事务隔离级别必须为READ COMMITTED,而MariaDB 10.4的默认事务隔离级别为REPEATABLE READ。隔离级别不符合要求时,Scheduler和Webserver并发读写元数据会出现不可重复读、幻读问题,直接导致dag元数据表中的is_paused字段被错误更新为True,表现为DAG被自动禁用。
排查方法:在MariaDB中执行命令SELECT @@global.tx_isolation, @@session.tx_isolation;确认隔离级别,若返回结果不是READ-COMMITTED,修改数据库配置后重启Airflow服务即可验证。 - Airflow 1.10.9 存在已知调度器BUG
该版本是官方已确认存在DAG自动暂停BUG的版本,相关问题在1.10.10版本中完成修复:当DAG目录下DAG数量较多、调度器解析压力较大时,多线程处理DAG解析结果的逻辑存在竞态条件,会误将正常解析完成的DAG标记为暂停状态,DAG总数超过100时触发概率会显著提升。 - DAG连续解析失败触发自动暂停机制
Airflow默认会对DAG解析结果做连续校验,若同一个DAG连续3次(可通过核心配置调整阈值)解析失败,包括DAG文件语法错误、依赖包缺失、文件权限异常无法读取等情况,调度器会自动将该DAG标记为暂停状态,避免无效解析占用调度资源。
排查方法:查看Scheduler服务日志中对应DAG ID的解析报错信息,即可确认是否属于该情况。 - 新DAG默认暂停规则触发的误判
Airflow 1.10.x默认开启dags_are_paused_at_creation = True配置,所有新识别的DAG默认处于暂停状态。如果DAG目录扫描间隔设置过短、DAG文件被意外删除后快速恢复、DAG解析超时被系统判定为文件不存在,重新识别到原有DAG时会被判定为新DAG,自动进入暂停状态。
内容的提问来源于stack exchange,提问作者angelokh
相关产品推荐
相关产品推荐

