Skip to content

Conversation

sorc1
Copy link
Contributor

@sorc1 sorc1 commented Mar 10, 2022

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)

ngx_http_upsync_connect_handler():
When ngx_event_connect_peer() fails, we shouldn't set the current
timer timeout 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.
@sorc1 sorc1 force-pushed the fix-infinite-loop branch from ef97046 to 53d1062 Compare August 4, 2022 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant