[Nut-upsuser] Belkin Regulator Pro dropping connection and halting
John Bayly
freebsd.ports at tipstrade.net
Thu Dec 2 10:24:03 UTC 2010
On 02/12/2010 10:08, Arjen de Korte wrote:
> Citeren Arnaud Quette <aquette.dev at gmail.com>:
>
>>> Thanks for the suggestions, I've added the flush statement as well
>>> as some
>>> debugging information. As this is a intermittent issue I decided to try
>>> overloading the UPS by sending it repeated beeper commands while
>>> watching
>>> the debug output. What appears to happen is that the UPS returns an
>>> unknown
>>> "~00R000" response. This means get_belkin_reply() returns -1, causing a
>>> datastale state is set when called from do_status().
>>
>> you should remove the datastale() call since upsd will automatically
>> flag
>> the device as stalled if it has failed to update its data for 15 seconds
>> (default of MAXAGE).
>
> Not at all!
>
> The upsd server will only declare the *driver* stale if it fails to
> respond within MAXAGE seconds. However, as long as it keeps answering
> the PING from the server, it will not be declared stale. This
> mechanism is something completely different from what happens if the
> driver calls dstate_datastale(). In that case the driver tells the
> upsd server that the *UPS* fails to respond. See the chapter on
> "Staleness control" in docs/new-drivers.txt.
>
> What really needs to be done, is that the driver doesn't treat the
> "~00R000" reply as an error condition. Apparently the UPS acknowledges
> the receipt of data, without further response (indicating that 0 bytes
> follow). The belkin driver doesn't accept this at the moment and
> requires that a reply follows. This is what needs to be changed.
Ah, I had actually thought about doing exactly that by allowing for a
zero-length response, but wasn't sure what the affect of doing so would
be. I'm going to have a look at the way in which other drivers operate.
>
> Last but not least, in most drivers, we allow a couple of missed
> replies before we call dstate_datastale() so that glitches don't lead
> to automatic reconnects.
Can you suggest what driver would be a good template to use?
>
> Best regards, Arjen
More information about the Nut-upsuser
mailing list