Release v6.1
weewx-loopdata 6.1
A bug-fix release: a dead or hanging rsync remote can no longer stall loop
processing. Drop-in upgrade — no config changes required, though users who
set ssh_options themselves get a real fix (see below).
What's new
- A hanging rsync remote no longer stalls loop processing. The
timeout = 1setting only ever reached rsync's--timeout, which bounds
rsync protocol I/O — not the phases ssh owns. A black-holed TCP connect,
a stalled ssh handshake, or an authentication prompt could each block the
loop processing thread for minutes per attempt; loop-data.txt kept being
written, but minutes behind the packets inside it, so live pages (the
sample panel, weewx-celestial's Geocentric dial) froze with a growing
"Ns ago" badge. LoopData now folds ssh-side bounds into the rsync
transport:ConnectTimeout=<timeout>,ServerAliveInterval=<timeout>,
ServerAliveCountMax=2andBatchMode=yes. Each is applied only if
your ownssh_optionsdoesn't already set that keyword, so anything you
set wins. Settingtimeout = 0(rsync's "no timeout") omits the time
bounds;BatchModeis still applied, because an interactive prompt can
never be answered under weewxd. - Your
ssh_optionsno longer silently discards the connect bound.
Previously the 1-secondConnectTimeoutlived in the default value of
ssh_options, so settingssh_optionsat all — a key file, a port —
replaced it and left connects unbounded. Now the bounds are merged with
whatever you set, andConnectTimeout/ServerAliveIntervalfollow your
timeoutvalue instead of a hardcoded 1.
Requirements
- WeeWX 4 or 5
- Python 3.7 or later
- No third-party Python packages required
Installing/upgrading
Download weewx-loopdata.zip
and install it over your existing copy, then restart weewxd:
weectl extension install weewx-loopdata.zip
(or wee_extension --install weewx-loopdata.zip on WeeWX 4).