Tengo un grupo de varias máquinas conectadas en una red 10GBE (las NIC son Intel 82599EB 10GBE SFI/SFP+) ejecutando Debian 6.0 y me enfrento al problema de conexiones TCP que se cuelgan en estado CLOSE_WAIT. Sé que en teoría la conexión en estado CLOSE_WAIT debería ser cerrada explícitamente por la aplicación, pero en mi caso al menos dos aplicaciones diferentes generan estas conexiones colgadas y creo que el problema está en otra cosa.
Al principio, este problema fue reproducido por Cassandra ejecutándose como un demonio bajo el proceso 'jsvc'. Un nodo de Cassandra ("servidor") no cerraba la conexión que fue cerrada en el otro nodo que inició esta conexión ("cliente"). Después de eso, ejecuté la prueba 'netperf' TCP_CRR y obtuve un mensaje de error:
netperf -H 172.15.2.166 -t TCP_CRR -l -5 -D TCP Prueba de Conectar/Solicitar/Responder de 0.0.0.0 (0.0.0.0) puerto 0 AF_INET a 172.15.2.166 (172.15.2.166) puerto 0 AF_INET : demo send_tcp_conn_rr: error de recepción de datos: Conexión restablecida por el otro extremo
Con la conexión TCP colgada en estado CLOSE_WAIT en la máquina 172.15.2.166 con un extraño byte de Recv-Q.
tcp 1 0 172.15.2.166:12865 172.15.2.161:42863 CLOSE_WAIT
He actualizado el controlador 'ixgbe' a la versión más reciente 3.9-NAPI, pero este problema aún persiste y ahora me pregunto ¿qué más podría causar el problema?