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

配置execution_timeout后Airflow任务超时失败却未收到告警邮件

问题

为DAG中的每个任务配置了execution_timeout,期望任务运行超时时触发失败。目前任务已因超时失败(状态显示红色),但尽管在default_args中配置了收件邮箱及email_on_failure: True,仍未收到告警邮件。

相关配置代码:

default_args = {
    'owner': 'airflow',
    'depends_on_past': False,
    'start_date': datetime.today() - timedelta(days = 2),
    'email':['email@company.com'],
    'email_on_failure': True
}

任务超时日志:

[2022-10-27 03:06:42,587] {logging_mixin.py:112} INFO - [2022-10-27 03:06:42,585] {timeout.py:42} ERROR - Process timed out, PID: 15847
[2022-10-27 03:06:42,588] {bash_operator.py:140} INFO - Sending SIGTERM signal to bash process group
[2022-10-27 03:06:42,602] {taskinstance.py:1145} ERROR - Timeout, PID: 15847
Traceback (most recent call last):
  File "/home/airflow_user/.local/lib/python3.7/site-packages/airflow/models/taskinstance.py", line 978, in _run_raw_task
    result = task_copy.execute(context=context)
  File "/home/airflow_user/.local/lib/python3.7/site-packages/airflow/operators/bash_operator.py", line 124, in execute
    for line in iter(self.sub_process.stdout.readline, b''):
  File "/home/airflow_user/.local/lib/python3.7/site-packages/airflow/utils/timeout.py", line 43, in handle_timeout
    raise AirflowTaskTimeout(self.error_message)
airflow.exceptions.AirflowTaskTimeout: Timeout, PID: 15847

排查方向

  • 检查Airflow邮件基础配置:确认airflow.cfg中smtp_host、smtp_port、smtp_user、smtp_password、smtp_mail_from等SMTP参数配置正确,任何参数缺失或错误都会导致邮件无法发送。
  • 验证收件邮箱规则:检查收件邮箱是否将Airflow发件地址标记为垃圾邮件,或设置了拦截规则,可先查看垃圾邮件文件夹,或临时将发件地址加入白名单测试。
  • 确认任务级配置未覆盖默认值:检查单个任务的定义中是否单独设置了email_on_failure=False,任务自身的配置会优先覆盖default_args中的设置。
  • 查看调度器邮件发送日志:在Airflow调度器日志中搜索包含email、smtp的关键字,确认是否存在邮件发送失败的报错(如连接超时、认证失败等)。
  • 检查Airflow版本bug:部分旧版本Airflow在处理AirflowTaskTimeout异常时,可能存在邮件触发逻辑的缺陷,可确认当前版本是否有已知相关问题,必要时升级到稳定版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:15:35