TWSD-1624, Health check for virtual service didn’t work under specific conditions

Review Request #1453 — Created March 20, 2026 and submitted

mingji
APV10
rel_apv_10_7_4
TWSD-1624
kevin.poh, philpeng, weikai

Root cause:
The logic of health relation or and should be, health = main || (add1 && add2 && add3 ...).
But we only check unhealthy in source code. As a result, if there is any health check is unhealthy, the status will be set to DOWN.

Solution:
Rewrite the logic of or and part.

  • When main is UP and others are DOWN, it should be UP
  • When main is DOWN and only one additional check is DOWN, it should be DOWN.
  • When main is DOWN and all additional checks are UP, it should be UP.
philpeng
  1. Ship It!
  2. 
      
kevin.poh
  1. Ship It!
  2. 
      
weikai
  1. Ship It!
  2. 
      
mingji
Review request changed

Status: Closed (submitted)

Loading...