BUILD/MINOR: Switch order on inside c.Start(), so restart will work and run Start() synchronously and split SyncData() into its own goroutine - #793
Conversation
882280a to
63a4b84
Compare
4901e11 to
f7e2a68
Compare
f7e2a68 to
29430c5
Compare
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
|
hi @cxfcxf otherwise I can merge it, but not through github interface |
29430c5 to
4b449f3
Compare
4b449f3 to
5490e46
Compare
done |
|
@cxfcxf |
Problem
When running the controller in external mode (e.g. under systemd), systemctl restart hangs ~50% of the time. The controller gets stuck and never processes Kubernetes events.
Root Cause
On restart, the old HAProxy may still be alive briefly. Start() previously ran APICommitTransaction calls before Service("start"), which stripped the daemon directive from the on-disk config. When the old HAProxy finally exited and a new one launched, it ran in the foreground, blocking forever.
Fix