nginx-upsync-module
nginx-upsync-module copied to clipboard
fix infinite loop on connection failures
ngx_http_upsync_connect_handler(): When ngx_event_connect_peer() fails, we shouldn't set the current timer to 0 as that immediatelly calls the current function again. Instead, we should call ngx_http_upsync_clean_event() to properly clean up & to set the reconnection timer.
It is easy to reproduce the bug on linux: on the nginx side try to block etcd IP address with a command below:
ip ro add unreach 1.1.1.1
(to remove the rule, run ip ro del unreach 1.1.1.1)