Tengo en mi aplicación una falla que surgió que no parece ser reproducible. Tengo una conexión de socket TCP que falló y la aplicación intentó volver a conectarlo. En la segunda llamada a connect() al intentar reconectar, obtuve un resultado de error con errno == EADDRNOTAVAIL que la página man para connect() dice que significa: "La dirección especificada no está disponible en la máquina local".¿Por qué se debería conectar() dar EADDRNOTAVAIL?
Al mirar la llamada a connect(), el segundo argumento parece ser la dirección a la que hace referencia el error, pero según tengo entendido, este argumento es la dirección de socket TCP del host remoto, así que estoy confundido acerca de la página del hombre que se refiere a la máquina local. ¿Es que esta dirección del servidor de socket TCP remoto no está disponible desde mi máquina local? Si es así, ¿por qué sería esto? Tuvo que haber tenido éxito al llamar a connect() la primera vez antes de que fallara la conexión e intentó reconectarse y obtuvo este error. Los argumentos para connect() fueron los mismos en ambas ocasiones.
¿Sería este un error transitorio que, si hubiera tratado de llamar a Connect otra vez, podría haber desaparecido si hubiera esperado lo suficiente? Si no, ¿cómo debo tratar de recuperarme de esta falla?
Tengo un problema similar en un gran cluster de Redis. ¿Cuál es tu caso de uso? El enlace – Riccardo