| Anterior | Siguiente |
| ENFILE | ENOTTY |
EMFILE
Qué significa EMFILE
EMFILE indica que el proceso alcanzó su propio límite de descriptores. Puede aparecer al abrir archivos, aceptar sockets, crear tuberías, duplicar descriptores o en cualquier API que necesite asignar uno nuevo. En Linux, RLIMIT_NOFILE participa directamente en ese límite.
Una causa común es una fuga: el descriptor se cierra en el camino normal pero queda abierto tras un error, cancelación, timeout o reconexión. También puede alcanzarse legítimamente si el servicio permite un número de conexiones o cachés sin un tope coherente con su configuración.
Qué comprobar
- Mide cuántos descriptores mantiene el proceso, clasifícalos por tipo/propietario y compáralos con su límite efectivo.
- Audita cierres en rutas de error, timeouts, handshakes fallidos, lanzamientos de procesos y descriptores duplicados.
- Configura close-on-exec deliberadamente para que los procesos hijos no hereden recursos que no necesitan.
- Aumenta el límite solo después de comprobar el dimensionamiento y la limpieza; un límite mayor puede limitarse a retrasar una fuga.
Referencias técnicas
¿Buscas un código diferente? Buscar otro código de estado o error.
