我在
Airflow 2.9.0
中(反复)收到以下错误:
2024-05-07T11:10:43.522+0000] {local_executor.py:139} ERROR - Failed to execute task ' ti'.
Traceback (most recent call last):
File "/home/airflow/.local/lib/python3.11/site-packages/airflow/executors/local_executor.py", line 135, in _execute_work_in_fork
args.func(args)
File "/home/airflow/.local/lib/python3.11/site-packages/airflow/cli/cli_config.py", line 49, in command
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/airflow/.local/lib/python3.11/site-packages/airflow/utils/cli.py", line 114, in wrapper
return f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/home/airflow/.local/lib/python3.11/site-packages/airflow/cli/commands/task_command.py", line 422, in task_run
ti.init_run_context(raw=args.raw)
File "/home/airflow/.local/lib/python3.11/site-packages/airflow/models/taskinstance.py", line 3307, in init_run_context
self._set_context(self)
File "/home/airflow/.local/lib/python3.11/site-packages/airflow/utils/log/logging_mixin.py", line 127, in _set_context
set_context(self.log, context)
File "/home/airflow/.local/lib/python3.11/site-packages/airflow/utils/log/logging_mixin.py", line 274, in set_context
flag = cast(FileTaskHandler, handler).set_context(value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/airflow/.local/lib/python3.11/site-packages/airflow/providers/microsoft/azure/log/wasb_task_handler.py", line 89, in set_context
super().set_context(ti, identifier=identifier)
File "/home/airflow/.local/lib/python3.11/site-packages/airflow/utils/log/file_task_handler.py", line 219, in set_context
local_loc = self._init_file(ti, identifier=identifier)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/airflow/.local/lib/python3.11/site-packages/airflow/utils/log/file_task_handler.py", line 500, in _init_file
local_relative_path = self._render_filename(ti, ti.try_number)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/airflow/.local/lib/python3.11/site-packages/airflow/utils/log/file_task_handler.py", line 290, in _render_filename
return str_tpl.format(
^^^^^^^^^^^^^^^
KeyError: ' ti'
我之前使用过
Airflow 2.2.0
,一切仍然工作正常,没有任何错误或警告。更新到 2.9.0 并升级数据库(使用airflow db migrate --to-version="2.9.0"
)后,我开始收到此错误。此错误似乎还会导致调度程序崩溃。不过网络服务器仍然可以访问。
Airflow 正在具有以下基本映像的 Docker 容器内运行:
apache/airflow:2.9.0-python3.11
到目前为止,我已经尝试在默认参数中设置
'provide_context'=True
并设置为特定的 PythonOperators。
还要注意,发生按键错误的按键中有一个空格(
' ti'
),这对我来说似乎很奇怪。
有谁知道如何修复这个错误?
编辑 1:即使 Airflow 没有加载任何 DAG,它仍然会出现相同的错误。这让我相信它与数据库有关。我使用 postgresql 数据库作为元数据。
我找到了解决问题的方法。在发现它与我的数据库有关后,我想我重置了它。不建议简单地这样做,但我当时没有重要的变量或联系。我相信我的问题出在
dag
表中,因此您可以尝试先清除该表。保持 dag
表完好无损并不那么重要,但要知道删除 dag 表将删除有关运行以及 DAG 是否暂停的历史记录。
如果您想使用与我相同的解决方案,您可以尝试以下命令:
airflow db reset
请注意,这也会丢弃变量(即秘密等)和连接!所以要小心。