当指定 --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.

我这边什么都没变,但服务器设置为自动升级。以 root 身份运行 uwsgi 成功了,但以 www-data 身份运行(我通常这样运行)失败了。

经过反复试验后,结果发现是该--never-swap选项导致了这个问题——当然,当我删除该选项后,它又恢复了正常。

因此我可以接受删除--never-swap,但我很想知道为什么会发生这种情况。是否有一些新的安全功能可以防止非 root 用户锁定内存页面 - 这就是文档中所说的此选项的作用 -uWSGI 文档在这里

答案1

非特权进程需要 CAP_IPC_LOCK 功能才能锁定内存页面。很可能有人(您或其他管理员)手动设置了此功能,然后在安装最新更新后,此功能当然就消失了。

相关内容