[Airflow] FileExistsError, AlreadyLocked

bradley·2023년 3월 28일
1

Trouble Shooting

목록 보기
10/12

현상


Airflow Webserver가 먹통이 됐다.

프로세스를 확인해보니 Airflow Webserver 프로세스가 떠 있긴 한데, Airflow Web Interface를 담당하는 gunicorn이 안 떠있다.


원인 파악


airflow-webserver.err를 확인해보니, FileExistsError, AlreadyLocked Error가 발생하였다.
airflow-webserver-monitor.pid를 찾을 수 없고, Lock 됐다고 한다.

airflow-webserver-monitor.pid는 Airflow Webserver의 프로세스 ID 정보를 담고있는 파일로, Airflow Webserver 실행 시 자동 생성된다.

어? 그런데 airflow-webserver-monitor.pid 파일이 있다.

airflow-webserver-monitor.pid 파일을 확인해보니 원인을 파악할 수 있었다.
airflow-webserver-monitor.pid 파일에는 Airflow Webserver 프로세스 id가 1192였다. 하지만 현재 실제 떠 있는 Airflow Webserver의 프로세스는 7183이다.

결과적으로

  • airflow-webserver-monitor.pid Process ID ≠ 실제 떠 있는 Airflow Webserver Process ID

문제였다.

Airflow Webserver 프로세스가 종료될 때 airflow-webserver-monitor.pid도 자동 삭제가 되는데 이 파일이 정상적으로 삭제가 되지 않았던 것 같다.

해결


airflow-webserver-monitor.pid 파일을 삭제해주고, Airflow Webserver를 다시 실행한다.
현재 EC2를 켰을 때 Airflow가 자동으로 뜰 수 있도록 systemctl로 서비스를 등록해준 상태이기 때문에 systemctl 명령으로 재시작했다.

Process ID를 다시 확인해보니 9205airflow-webserver-monitor.pid 파일과 실제 실행되고 있는 Airflow Webserver Process ID가 일치됐다.
gunicorn도 정상적으로 실행되는 것을 볼 수 있다.

Webserver도 정상적으로 실행된다.

profile
데이터 엔지니어링에 관심이 많은 홀로 삽질하는 느림보

0개의 댓글