我在 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 功能才能锁定内存页面。很可能有人(您或其他管理员)手动设置了此功能,然后在安装最新更新后,此功能当然就消失了。