1 votos

Los errores WSAENOBUFS se producen al realizar conexiones HTTP en Windows Server 2008 x64.

Estamos tratando de transferir un gran número de archivos desde una carpeta compartida en red a Openstack utilizando una aplicación escrita a medida en Erlang (utilizando la versión R15B de Erlang).

Después de transferir alrededor de 20k archivos, el proceso de Erlang comienza a devolver errores enobufs, lo que resulta en la imposibilidad de establecer conexiones HTTP con OpenStack. Además, el código C# que se ejecuta en la misma máquina ya no puede abrir sockets, lo que resulta en errores vistos en esta pregunta sobre la falta de espacio de búfer suficiente. Cerrar todas las aplicaciones personalizadas y reiniciar no alivia la situación.

El número de conexiones abiertas nunca supera las 300 conectadas, pero típicamente se sitúa en el rango de las 2k cuando se incluye TIME_WAIT. Las conexiones no se mantienen abiertas, sino que se abren y cierran rápidamente.

Todos los artículos que pude encontrar parecen mencionar ese límite de puertos 'efímeros', pero no parece que estemos llegando a ese punto, y cerrar la aplicación de Erlang no produce mejoras.

¿Hay algo más que podría estar reteniendo el espacio de búfer y no liberándolo adecuadamente?

2voto

SkylarMT Puntos 121

Una de las funciones de la aplicación era comunicarse con un servicio local. Parece que esto provocó una fuga de sockets del kernel en Server 2008 donde no liberaba los sockets correctamente. Aplicar el hotfix mencionado en el artículo de soporte resolvió el problema.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X