Dear Maintainer,

The harmful effect of this bug is greater than the original
description. It not only causes the failure to poweroff during
a fault, but also causes unexpected poweroffs when there's no
fault.

If nut-monitor is used, and the UPS has undergone a calibration
cycle, with the "CAL" flag active, the "CAL" status would remain
active permanently. Later, if nut-monitor disconnects from the
server (e.g. due to a server reboot), nut-monitor would determine
incorrectly that the UPS went offline in the middle of a
calibration, interpreting as a failed UPS, thus shutting down the
client.

As a result, any server reboots may cause unexpected poweroffs on
the client. All downstream distributions are affected, an example
on Debian 13.5 is provided.

    nut-monitor[1644]: Poll UPS [[email protected]] failed - Server 
disconnected
    nut-monitor[1644]: Communications with UPS [email protected] lost
    nut-monitor[1644]: UPS [[email protected]] was last known to be 
calibrating and currently is not communicating, assuming dead
    nut-monitor[1644]: FSD set on UPS [email protected] failed: Driver not 
connected
    nut-monitor[1644]: Executing automatic power-fail shutdown
    nut-monitor[1644]: Auto logout and shutdown proceeding
    nut-monitor[2622026]: Network UPS Tools upsmon 2.8.1

This problem has already been fixed on NUT 2.8.2. But since Debian
Stable will continue to be based on NUT 2.8.1 for over a year, please
consider cherry-picking the patch. Namely, the ups_is_notcal() logic
from NUT 2.8.2 to NUT 2.8.1.

For more information, see:

* Nut shutdown assuming dead ups #2794
  https://github.com/networkupstools/nut/issues/2794

* Commit c174a8f: clients/upsmon.{c,h} et al: add notification support for 
NOTCAL state change [#2169]
  
https://github.com/networkupstools/nut/commit/c174a8f387ce0337aea9ef611831be5ca2b828d3

Thanks,
Tom Li

Reply via email to