Flask IOError: Apache/mod_wsgi request data...

과녁스·2021년 9월 29일
0

Python

목록 보기
5/5
post-thumbnail

개요


Flask와 Apache/mod_wsgi로 운영 중인 API 서버 로그를 분석 중 IOError가 발생하여 내용을 확인하였습니다. 에러 내용은 아래와 같습니다.

IOError: Apache/mod_wsgi request data read error: Partial results are valid but processing is incomplete.

내용 분석


아래 내용은 '참고' 링크의 원문은 보기 편하게 번역하여 작성하였습니다. 본문의 내용과 상이할 수 있습니다.

Request Content를 읽을 때 필요한 길이의 Content를 읽지 않은 경우 WSGI 계층은 wsgi.input.read()가 호출될 때 IOError 예외를 발생시킵니다.

애플리케이션 코드가 깨진 Request Content를 특별히 확인하지 않고 해당 예외 유형을 처리하지 않으면 다시 전파되고 어플리케이션에서 처리되지 않은 예외로 처리됩니다. 어플리케이션은 그 시점에서 500 오류 응답을 작성하려고 시도합니다. WSGI 계층에 의해 작성되면 연결이 닫혀서 실패합니다. 이는 실제로 응답 작성을 시도해야만 감지할 수 있습니다.

따라서 어플리케이션은 불완전한 POST 데이터를 제공하지 않아야 하며 대신 예외가 발생해야 합니다.

위와 같은 방법보다 더 나은 처리 방법은 현재 없습니다. 차단 모델을 기반으로 하는 WSGI 사양으로 인해 끊어진 연결을 정상적인 요청으로 감지하고 처리하는 것은 실제로 불가능합니다.

처리가 필요한 경우에는 ASYNC 웹 서버 및 프레임워크로 전환해야 더 잘 처리할 수 있으며 이는 WSGI 또는 Django/Flask 등을 사용할 수 없음을 의미합니다.

참고

profile
ㅎㅅㅎ

0개의 댓글