본문 바로가기

Data/Data Engineering

[Airflow] Task Was the task killed externally? + 아무런 로그없이 죽는 현상 해결

반응형

일단 확실하진않은 해결법입니다. 전 이렇게 해서 해결이된 상태라 참고만 부탁드립니다 :)

 

Airflow에서 갑자기 Task들이 아무런 log가 발생안되고 죽는 현상이 빈번하게 발생해서 디버깅중에, airflow_scheduler에서 다음과같은 로그가 무수히 발생했다.

[2022-11-30 05:11:28,252] {scheduler_job.py:684} ERROR - Executor reports task instance <TaskInstance: TRIGGER_monthly_rm_fast_test_hac_1d5large.ssd_onedotfive_moreh-test-vm02.ssd_1.5xLarge307216_remove_virtual_env_moreh-test-vm02 manual__2022-11-29T14:15:45.634608+00:00 [queued]> finished (failed) although the task says its queued. (Info: None) Was the task killed externally?

대충 외부요소로 인해서 Task가 죽었다는건데, 자료 조사를 해보니 한가지 공통되는 원인이 보였다.

"일단 Redis에 문제가 발생했을 가능성이 있으니 Redis에서 발생한 로그를 살펴보아라"

하지만 난 Redis container의 log를 살펴보아도 별다른 문제가 보이지않았다...ㅠ

 

그래서 혹시 몰라서 재시도 횟수를 한번 늘려보았는데 더이상 아무런 로그없이 죽는현상은 보이지않았다...

 

즉 해결방법은,

 

  • 만약에 task단위로 retry 횟수를 늘리고싶다면 Operator 인자값에 retries=3 이라는 인자값 추가
  • 만약에 전체DAG에 대해서 retry횟수를 늘리고싶다면 default_args에 retries 요소를 넣어주면된다
반응형