Hi,
On my enviroment, i have a load-balancer, witch uses udp(icmp) protocol to
check connection status between vip and backend.
In normal cirsumstances, vip send request packet to backends , and backends
send reply to vip, so the result of health check is online status. Then, i set
the nic of backends vm to down state through command "ip link set eth0 down",
in this case, the backends vm would't send reply to vip, but vip still send
request to backends.In function svc_monitors_run, after sending request packet,
state of vip would change to waiting, after 3 seconds, due to no reply packet,
svc_mon->state change to SVC_MON_S_ONLINE, so, even no reply state keep on
line. This is unreasonable, it should be offline.
So this patch is to fix this bug!
Signed-off-by: wangchuanlei <[email protected]>
---
controller/pinctrl.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/controller/pinctrl.c b/controller/pinctrl.c
index 38e8590af..1a21c7704 100644
--- a/controller/pinctrl.c
+++ b/controller/pinctrl.c
@@ -7526,13 +7526,9 @@ svc_monitors_run(struct rconn *swconn,
case SVC_MON_S_WAITING:
if (current_time > svc_mon->wait_time) {
- if (svc_mon->protocol == SVC_MON_PROTO_TCP) {
- svc_mon->n_failures++;
- svc_mon->state = SVC_MON_S_OFFLINE;
- } else {
- svc_mon->n_success++;
- svc_mon->state = SVC_MON_S_ONLINE;
- }
+ svc_mon->n_failures++;
+ svc_mon->state = SVC_MON_S_OFFLINE;
+
svc_mon->next_send_time = current_time + svc_mon->interval;
next_run_time = svc_mon->next_send_time;
} else {
--
2.27.0
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev