Задание воздушного потока завершено с кодом возврата 1 без предупреждения / сообщения об ошибке - PullRequest
0 голосов
/ 03 мая 2020

Apache версия с воздушным потоком : 1.10.10

версия Kubernetes (если вы используете kubernetes) (используйте kubectl version): не используете Kubernetes или docker

Среда : CentOS Linux версия 7.7.1908 (ядро) Linux 3.10.0-1062.el7.x86_64

Python Версия : 3.7.6

Исполнитель : LocalExecutor

Что случилось :

Я пишу простое Даг для очистки журналов воздушного потока. Все в порядке, когда я использую команду «airflow test» для ее проверки, я также запускаю ее вручную в WebUI, который использует команду «airflow run» для запуска моей задачи, она все еще в порядке.

Но после того, как я перезагружаю свой сервер и перезапускаю службу веб-сервера и планировщика (в режиме демона), каждый раз, когда я запускаю точно такой же dag , он все равно будет запланирован как обычно, но выйдите с кодом 1 сразу после запуска нового процесса для запуска задачи.

Я также снова использую команду 'airflow test', чтобы проверить, что сейчас с моим кодом что-то не так, но все выглядит нормально при использовании 'airflow test', но завершает работу тихо при использовании 'airflow run', это действительно странно.

Вот журнал задач, когда он запускается вручную в WebUI (я изменил уровень журнала на DEBUG, но все еще не могу найти ничего полезного), или вы можете прочитать прикрепленный файл журнала: ошибка задачи log.txt

Чтение локального файла: /root/airflow/logs/airflow_log_cleanup/log_cleanup_worker_num_1/2020-04-29T13:51:44.071744+00:00/1. log [2020-04-29 21: 51: 53,744] {base_task_runner.py:61} DEBUG - Планирование запуска от имени пользователя [2020-04-29 21: 51: 53,750] {taskinstance.py:686} DEBUG - зависимость «Предыдущее состояние Дагруна» ПРОЙДЕНО: верно, для задачи не задано значение depen_on_past. [2020-04-29 21: 51: 53,754] {taskinstance.py:686} DEBUG - зависимость 'Not In Retry Period' PASSED: True, экземпляр задачи не был помечен для повторной попытки. [2020-04-29 21: 51: 53,754] {taskinstance.py:686} DEBUG - зависимость «Состояние экземпляра задачи» PASSED: True, состояние задачи в очереди было допустимым. [2020-04-29 21: 51: 53,754] {taskinstance.py:669} ИНФОРМАЦИЯ - все зависимости встречались для [2020-04-29 21: 51: 53,757] {taskinstance.py:686} DEBUG - зависимость 'Предыдущий Dagrun State 'PASSED: True, в задаче не установлено значение depen_on_past. [2020-04-29 21: 51: 53,760] {taskinstance.py:686} DEBUG - зависимость «Доступные слоты пула» PASSED: True, («В% s достаточно открытых слотов для выполнения задачи», «default_pool» ) [2020-04-29 21: 51: 53,766] {taskinstance.py:686} DEBUG - зависимость «Not In Retry Period» PASSED: True, экземпляр задачи не был помечен для повторной попытки. [2020-04-29 21: 51: 53,768] {taskinstance.py:686} DEBUG - зависимость 'параллелизм задачи' PASSED: True, параллелизм задачи не установлен. [2020-04-29 21: 51: 53,768] {taskinstance.py:669} ИНФОРМАЦИЯ - все зависимости были выполнены для

[2020-04-29 21: 51: 53,768] {taskinstance.py:879} ИНФОРМАЦИЯ -

[2020-04-29 21: 51: 53,768] {taskinstance.py:880} ИНФОРМАЦИЯ - Стартовая попытка 1 из 2

[2020-04-29 21:51: 53,768] {taskinstance.py:881} ИНФОРМАЦИЯ -

[2020-04-29 21: 51: 53,779] {taskinstance.py:900} ИНФОРМАЦИЯ - Выполнение 2020-04-29T13: 51: 44.071744+ 00:00 [2020-04-29 21: 51: 53,781] {standard_task_runner.py:53} INFO - запущен процесс 29718 для запуска задачи [2020-04-29 21: 51: 53,805] {logging_mixin.py:112} INFO - [2020-04-29 21: 51: 53,805] {cli_action_loggers.py:68} DEBUG - Вызов обратных вызовов: [] [2020-04-29 21: 51: 53,818] {logging_mixin.py:112} INFO - [2020 -04-29 21: 51: 53,817] {cli_action_loggers.py:86} DEBUG - обратные вызовы: [] [2020-04-29 21: 51: 58,759] {logging_mixin.py:112} INFO - [2020-04- 29 21: 51: 58,759] {base_job.py:200} DEBUG - [heartbeat] [2020-04-29 21: 51: 58,759] {logging_mixin.py:112} INFO - [2020-04-29 21:51: 58,759] {loca l_task_job.py:124} DEBUG - время с момента последнего сердцебиения (0,01 с) <сердечный ритм (5,0 с), время сна 4,98824 с [2020-04-29 21: 52: 03,753] {logging_mixin.py:112} INFO - [2020 -04-29 21: 52: 03,753] {local_task_job. py: 103} INFO - Задание завершено с кодом возврата 1 </p>

Как его воспроизвести :

Я действительно не знаю, как его воспроизвести. потому что это происходит внезапно и кажется постоянным ??

Что-то еще, что нам нужно знать :

Я пытаюсь выяснить разницу между «тестом воздушного потока» и « airflow run ', возможно, это как-то связано с форком процесса?

То, что я пытался решить эту проблему, но все не удалось:

  • очистить всю информацию dag / dag run / task instance, удалить все файлы в / root / airflow кроме файла конфигурации, и перезапустите мой сервис

  • перезагрузите мой сервер снова

  • удалите airflow и установите его снова

1 Ответ

0 голосов
/ 09 мая 2020

Я наконец-то выяснил, как воспроизвести эту ошибку.

Когда вы конфигурируете электронную почту в airflow.cfg, и ваш dag содержит оператор электронной почты или используете smtp serivce, если ваш пароль smtp содержит символ, такой как «^», первое задание вашего dag будет 100% завершено с кодом возврата 1 без какой-либо информации об ошибке, в моем случае первое задание - просто оператор python.

Хотя я думаю, что это мой плохой путь - испортить службу smtp, должны быть некоторые разумные подсказки, на самом деле у меня уходит целая неделя, чтобы отладить это, я должен сбросить все в моей среде воздушного потока и медленно изменить конфигурацию, чтобы увидеть, когда эта ошибка происходит.

Надеюсь, эта информация полезна

...