ПРЕДУПРЕЖДЕНИЕ. Состояние этого экземпляра было установлено как успешное.Принимая таблетку с ядом - PullRequest
2 голосов
/ 04 апреля 2019

Я недавно обновил свой кластер Airflow с 1.7.1.3 до 1.10.2 с mysql в качестве бэкэнда и rabbitmq для передачи сообщений. После обновления я вижу эту проблему в некоторых из моих задач -

WARNING - State of this instance has been externally set to success. Taking the poison pill.

Это происходит случайно в любом задании. Я не пометил эту задачу внешне успешно, но все же получаю эту ошибку. Кто-нибудь еще сталкивался с этим? Как это исправить?

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

Я получил то же самое предупреждение (сопровождаемое ошибкой). Я не использовал mysql в качестве бэкенда и rabbitmq для передачи сообщений, как вы. Я загружал данные из двух разных файлов в две разные таблицы в виде больших запросов в виде двух параллельных задач (GoogleCloudStorageToBigQueryOperator):

    INFO - Subtask ... WARNING - State of this instance has been externally set to success. Taking the poison pill.
    INFO - Subtask ... INFO - Sending Signals.SIGTERM to GPID 176
    INFO - Subtask ... ERROR - Received SIGTERM. Terminating subprocesses.
    ...
    ERROR - (MySQLdb._exceptions.OperationalError) (1213, 'Deadlock found when trying to get lock; try restarting transaction') [SQL: 'UPDATE task_instance SET state=%s WHERE task_instance.task_id = %s AND task_instance.dag_id = %s AND task_instance.execution_date = %s'] [parameters: ('queued', 'subdag_name_task_name', 'dag_name.subdag_name', datetime.datetime(2019, 6, 12, 11, 8, 53, 539047, tzinfo=<Timezone [UTC]>))] (Background on this error at: http://sqlalche.me/e/e3q8)

Как и у вас, ошибка возникает через несколько минут только после запуска.

Решение: Выполнение задач один за другим вместо параллельного решения решило проблему в моем случае.

В конце ошибки указан URL для более подробной информации об этой ошибке.

0 голосов
/ 07 апреля 2019

Эта ошибка обычно возникает, когда время задачи истекло.Вы можете увеличить время ожидания, если ваша задача выполняется долго.

Вы также можете посмотреть тайм-ауты видимости , если вы используете Celery с Redis в качестве бэкэнда.

...