Utilizo uWSGI en ubuntu 18 (18.04.5 LTS). Hace muy poco, esto dejó de funcionar; recibía este error al iniciar:
Fatal Python error: Cannot recover from MemoryErrors while normalizing exceptions.
Nada había cambiado mi lado, pero el servidor estaba configurado para actualizarse automáticamente. Ejecutar uwsgi como root funcionó, pero www-data (que es como lo ejecuto normalmente) falló.
Después de algunas pruebas y errores, resultó que la --never-swap
opción estaba causando esto; ciertamente, cuando la eliminé, funcionó nuevamente.
Entonces puedo vivir eliminando --never-swap
, pero me encantaría saber por qué sucedió esto. ¿Existe alguna característica de seguridad nueva que impide que los usuarios no root bloqueen las páginas de memoria? Eso es lo que dice el documento que hace esta opción.documento uWSGI aquí.
Respuesta1
Un proceso sin privilegios necesita la capacidad CAP_IPC_LOCK para bloquear páginas de memoria. Lo más probable es que alguien (usted u otro administrador) haya configurado esta capacidad manualmente y luego, por supuesto, desapareció cuando se instaló una actualización reciente.