Задача воздушного потока периодически завершается ошибкой из-за сбоя при загрузке файла журнала и не удается прочитать журналы - PullRequest
0 голосов
/ 25 марта 2020

У меня DAG, который запускается один раз в день. Он начинается с 9 одновременно выполняющихся задач, которые все выполняют одно и то же - каждая из них в основном опрашивает S3, чтобы определить, существует ли указанный файл 1 задачи. Каждое задание является одним и тем же кодом в Airflow и одинаково размещается в структуре. У меня есть одна из этих задач, которая в случайные дни не может «начаться» - она ​​не перейдет в стадию running. Это просто сидит как queued. Когда это происходит, вот что говорит его журнал

*** Log file isn't local.
*** Fetching here: http://:8793/log/my.dag.name./my_airflow_task/2020-03-14T07:00:00
*** Failed to fetch log file from worker.

*** Reading remote logs...
Could not read logs from s3://mybucket/airflow/logs/my.dag.name./my_airflow_task/2020-03-14T07:00:00

Почему это происходит только в случайные дни? Все подобные вопросы, которые я видел, указывают на то, что эта ошибка происходит последовательно, и после ее устранения она больше не продолжается. Чтобы «обмануть» эту задачу, чтобы «запустить», я вручную touch могу назвать имя файла журнала, а затем оно меняется на running.

1 Ответ

0 голосов
/ 18 апреля 2020

Таким образом, проблема, по-видимому, связана с правилами владения системой, относящимися к папке, в которую записываются журналы для этой конкретной задачи. Я использовал инструмент CI для доставки нового task_3, когда обновил код Python своего Airflow в производственной среде, поэтому задача была создана таким образом. Когда я достиг уровня владения каталогом журналов, я заметил это для задач:

# inside/airflow/log/dir: 

drwxrwxr-x 2 root    root     4096 Mar 25 14:53 task_3  # is the offending task
drwxrwxr-x 2 airflow airflow 20480 Mar 25 00:00 task_2
drwxrwxr-x 2 airflow airflow 20480 Mar 25 15:54 task_1

Итак, я думаю, что происходило так, что в случайном порядке Airflow не мог получить разрешение на запись файла журнала, таким образом это не запустило бы остальную часть задачи. Когда я применил соответствующую команду chown, используя что-то вроде sudo chown -R airflow:airflow task_3. С тех пор как я изменил это, проблема исчезла.

...