우분투 18(18.04.5 LTS)에서 uWSGI를 사용합니다. 아주 최근에 이 기능이 작동을 멈췄습니다. 시작 시 다음 오류가 발생했습니다.
Fatal Python error: Cannot recover from MemoryErrors while normalizing exceptions.
내 편에서는 아무것도 바뀌지 않았지만 서버는 자동 업그레이드로 설정되었습니다. uwsgi를 루트로 실행하면 작동했지만 www-data(일반적으로 실행하는 방식)로는 실패했습니다.
몇 번의 시행착오 후에 옵션이 이 문제를 일으키는 것으로 밝혀졌습니다 --never-swap
. 확실히 옵션을 제거했을 때 다시 작동했습니다.
따라서 제거하고 살 수 있지만 --never-swap
왜 이런 일이 발생했는지 알고 싶습니다. 루트가 아닌 사용자가 메모리 페이지를 잠그는 것을 방지하는 새로운 보안 기능이 있습니까? 문서에서는 이 옵션이 그렇게 한다고 말합니다.uWSGI 문서는 여기.
답변1
권한이 없는 프로세스는 메모리 페이지를 잠그기 위해 CAP_IPC_LOCK 기능이 필요합니다. 누군가(귀하 또는 다른 관리자)가 이 기능을 수동으로 설정했을 가능성이 높으며 최신 업데이트가 설치되면 해당 기능이 사라졌습니다.