On 9/18/26 9:23 AM, Jaygue Lee wrote:
> A backend is only probed by the ovn-controller of the chassis its port
> is bound to (pinctrl's sync_svc_monitors() skips ports bound elsewhere).
> When Port_Binding.chassis is cleared while "up" stays true, nobody probes
> the backend anymore and its last "online" status is trusted forever, so
> traffic keeps being sent to a backend that may be gone.  This happens
> when the Chassis row is deleted (weak reference), after "ovn-appctl exit"
> without --restart, and when ovn-controller restarts on a hypervisor whose
> VMs did not come back and releases ports it was not tracking.
> 
> Commit 23e203a3f ("northd: set svc_mon status to offline if port_binding
> released") only checks "up".  Also treat an unbound port as offline, for
> both load balancer and LSP health checks, and clear chassis_name so it
> never names a chassis that stopped probing.  ovn-controller sets the
> status back to "online" once the port is bound again and a probe
> succeeds; northd never writes "online" itself.
> 
> The ovn-ic service monitor test emulated a probed backend by setting
> Port_Binding "up" without a chassis; bind the ports to a chassis instead,
> which is what happens in practice.
> 
> CC: Vladislav Odintsov <[email protected]>
> Fixes: 23e203a3f30b ("northd: set svc_mon status to offline if port_binding 
> released")
> Assisted-by: Claude Opus 5, Claude Code
> Signed-off-by: Jaygue Lee <[email protected]>
> ---

Hi Jaygue, Mairtin,

Thanks for the fix and review!  Applied to main, 26.09 and 26.03.

Regards,
Dumitru

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to