Skip to content

Commit 141c8ae

Browse files
nre-abletonbbaassssiiee
authored andcommitted
Retry restarting service on Windows
In some cases, Windows' ability to restart a service is faster than consul's ability to shut down cleanly. In such cases, these lines can be seen in the consul log: [INFO] agent.client: shutting down client [ERROR] agent: Error starting agent: error="Failed to start Consul client: Failed to start lan serf: Failed to create memberlist: Could not set up network transport: failed to obtain an address: Failed to start TCP listener on "10.50.0.45" port 8301: listen tcp 10.50.0.45:8301: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted." [INFO] agent: Exit code: code=1 The log timestamps also show that all three messages occur at the exact same time, indicating that there is likely a race condition here. Usually, a second retry one second later should provide enough time to beat the race condition, but for good measure, we'll retry up to three times just to be safe.
1 parent 577d472 commit 141c8ae

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

handlers/restart_consul.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,8 @@
1313
name: consul
1414
state: restarted
1515
when: ansible_os_family == "Windows"
16+
register: windows_service_started
17+
retries: 3
18+
delay: 1
19+
until: windows_service_started is succeeded
1620
listen: 'restart consul'

0 commit comments

Comments
 (0)