bhouse-nexthop commented on PR #14131:
URL: https://github.com/apache/cloudstack/pull/14131#issuecomment-5623444727

   @weizhouapache good catch, thanks - added in the latest commit.
   
   `haproxy_check.py` knew about `maxconn` and the global idle timeout, so the 
new per rule settings
   could drift with nothing noticing. The health check data now carries all 
three, and the check
   validates them in that rule's own `listen` section:
   
   | data | checked |
   |---|---|
   | `ruleKeepAlive` | `option http-keep-alive`, or `option httpclose` |
   | `ruleIdleTimeout` | `timeout client`, `timeout server` |
   | `ruleKeepAliveTimeout` | `timeout http-keep-alive` |
   
   The http mode test needed widening as well, otherwise a rule that sets 
keepalive itself stopped
   being checked at all:
   
   ```
   before   port 80 and the offering has keepalive off
   after    port 80 and (the rule sets keepalive, or the offering has it off)
   ```
   
   Compatibility: an older management server sends none of these keys, and a 
rule that inherits sends
   them empty. Both read as nothing to check, so an updated system VM template 
against an older
   management server still passes.
   
   I ran the script against generated configs rather than only reading it - a 
matching config passes,
   and each of a wrong keepalive option, a drifted `timeout client` and a 
missing
   `timeout http-keep-alive` fails.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to