--never-swap を指定すると、ubuntu 18 上の uWSGI が突然失敗する

--never-swap を指定すると、ubuntu 18 上の uWSGI が突然失敗する

私は ubuntu 18 (18.04.5 LTS) で uWSGI を使用しています。ごく最近、これが動作しなくなりました。起動時に次のエラーが表示されるようになりました。

Fatal Python error: Cannot recover from MemoryErrors while normalizing exceptions.

私の側では何も変更されていませんでしたが、サーバーは自動アップグレードに設定されていました。 uwsgi を root として実行すると機能しましたが、www-data (通常はこのように実行します) として実行すると失敗しました。

何度か試行錯誤した結果、--never-swapオプションが原因であることが判明しました。確かに、それを削除すると再び機能しました。

削除しても問題ありません--never-swapが、なぜこのようなことが起きたのか知りたいです。新しいセキュリティ機能により、非ルートユーザーがメモリページをロックできないようになっているのでしょうか。ドキュメントには、このオプションはそうする、と書かれています。uWSGIドキュメントはこちら

答え1

権限のないプロセスでは、メモリ ページをロックするために CAP_IPC_LOCK 機能が必要です。おそらく誰か (あなたまたは別の管理者) がこの機能を手動で設定し、最近の更新がインストールされたときにこの機能は当然なくなっています。

関連情報