Config reload with dynamic service discovery via DNS

I applied the patch to 1.8.8 and tried some quick tests. I can see the new data in the server state file but it still had the same behavior after reload and would wait for the health checks to pass before sending requests and cause an outage. Please let me know what other info you need or if I patched the wrong version.

1.8.8 no patch

Requests working - show servers state

# be_id be_name srv_id srv_name srv_addr srv_op_state srv_admin_state srv_uweight srv_iweight srv_time_since_last_change srv_check_status srv_check_result srv_check_health srv_check_state srv_agent_state bk_f_forced_id srv_f_forced_id srv_fqdn srv_port
6 backend_testapp 1 testapp1 192.168.64.146 2 0 1 1 43 15 3 4 6 0 0 0 docker01.marathon.mesos 443
6 backend_testapp 2 testapp2  0 0 1 1 65 5 2 0 6 0 0 0 - 0
6 backend_testapp 3 testapp3  0 0 1 1 62 5 2 0 6 0 0 0 - 0
6 backend_testapp 4 testapp4  0 0 1 1 60 5 2 0 6 0 0 0 - 0

After reload things not working - show servers state

# be_id be_name srv_id srv_name srv_addr srv_op_state srv_admin_state srv_uweight srv_iweight srv_time_since_last_change srv_check_status srv_check_result srv_check_health srv_check_state srv_agent_state bk_f_forced_id srv_f_forced_id srv_fqdn srv_port
6 backend_testapp 1 testapp1 192.168.64.146 0 0 1 1 20 15 3 1 6 0 0 0 docker01.marathon.mesos 443
6 backend_testapp 2 testapp2  0 0 1 1 17 5 2 0 6 0 0 0 - 0
6 backend_testapp 3 testapp3  0 0 1 1 14 5 2 0 6 0 0 0 - 0
6 backend_testapp 4 testapp4  0 0 1 1 12 5 2 0 6 0 0 0 - 0


patch -p1 -b < ../haproxy-srv.patch 
patching file include/types/server.h
patching file src/proxy.c
Hunk #2 succeeded at 1456 (offset -3 lines).
patching file src/server.c
Hunk #1 succeeded at 2640 (offset -38 lines).
Hunk #2 succeeded at 2664 (offset -38 lines).
Hunk #3 succeeded at 2797 (offset -38 lines).
Hunk #4 succeeded at 2935 (offset -39 lines).
Hunk #5 succeeded at 3224 (offset -39 lines).


Requests working - show servers state

# be_id be_name srv_id srv_name srv_addr srv_op_state srv_admin_state srv_uweight srv_iweight srv_time_since_last_change srv_check_status srv_check_result srv_check_health srv_check_state srv_agent_state bk_f_forced_id srv_f_forced_id srv_fqdn srv_portsrvrecord
6 backend_testapp 1 testapp1 192.168.64.146 2 0 1 1 8 15 3 4 6 0 0 0 docker01.marathon.mesos 443 _testapp._tcp.marathon.mesos
6 backend_testapp 2 testapp2  0 0 1 1 30 5 2 0 6 0 0 0 - 0 _testapp._tcp.marathon.mesos
6 backend_testapp 3 testapp3  0 0 1 1 27 5 2 0 6 0 0 0 - 0 _testapp._tcp.marathon.mesos
6 backend_testapp 4 testapp4  0 0 1 1 25 5 2 0 6 0 0 0 - 0 _testapp._tcp.marathon.mesos


After reload things not working - show servers state

# be_id be_name srv_id srv_name srv_addr srv_op_state srv_admin_state srv_uweight srv_iweight srv_time_since_last_change srv_check_status srv_check_result srv_check_health srv_check_state srv_agent_state bk_f_forced_id srv_f_forced_id srv_fqdn srv_portsrvrecord
6 backend_testapp 1 testapp1 192.168.64.146 0 0 1 1 7 15 3 1 6 0 0 0 docker01.marathon.mesos 443 _testapp._tcp.marathon.mesos
6 backend_testapp 2 testapp2  0 0 1 1 5 5 2 0 6 0 0 0 - 0 _testapp._tcp.marathon.mesos
6 backend_testapp 3 testapp3  0 0 1 1 1 5 2 0 6 0 0 0 - 0 _testapp._tcp.marathon.mesos
6 backend_testapp 4 testapp4  2 0 1 1 7 1 0 3 6 0 0 0 - 0 _testapp._tcp.marathon.mesos