2011-05-16 8 views

Respuesta

7

El error Errno::EHOSTUNREACH: No route to host - connect(2) indica un problema de enrutamiento y probablemente tiene algo que ver con una dirección IP incorrecta. Es posible que haya especificado una dirección IP incorrecta en /etc/hosts (hosts file que asigna nombres de host a direcciones IP) o en otro lugar, por ejemplo en config/deploy.rb, etc. Si utiliza una red local con un servidor DHCP, las direcciones IP pueden cambiar frecuentemente.

1

Es posible que esto no se aplique en su caso, pero tuve un problema similar. Hemos tenido problemas con nuestro servidor de correo electrónico interno, el servidor web no puede entregar correos electrónicos a nuestras propias direcciones en ocasiones. Para evitar ese problema que está fuera de mi control, y evitar que aparezcan los 500 errores, acabo de detectar la excepción.

En el controlador que manda los correos electrónicos, envolví la llamada gestor de correo:

Notifier.deliver_issue_updated(@issue, @changes, current_user) 

gusta esta

begin 
    Notifier.deliver_issue_updated(@issue, @changes, current_user) 
    rescue 
    flash[:notice] += " Unable to deliver email notices." 
    end 

Ahora el usuario es notificado de que el correo electrónico no salió, pero no perturbado por un error de 500.

Espero que ayude.

5

Sobre la base de la respuesta de Joeshmo:

begin 
    # problematic code 
rescue Errno::EHOSTUNREACH 
    # log the error 
    # let the User know 
rescue 
    # handle other exceptions 
end 
1

Si usted trabaja en la implementación cocinero-cliente, entonces sería un problema en esta equivocado host IP/servidor en client.rb

cd /etc/chef/ 

editar cliente .rb

chef_server_url "http://CORRECT_SERVER_IP:4000" 
Cuestiones relacionadas