Skip to content

Release v6.1

Choose a tag to compare

@chaunceygardiner chaunceygardiner released this 25 Jul 00:36

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 = 1 setting 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=2 and BatchMode=yes. Each is applied only if
    your own ssh_options doesn't already set that keyword, so anything you
    set wins. Setting timeout = 0 (rsync's "no timeout") omits the time
    bounds; BatchMode is still applied, because an interactive prompt can
    never be answered under weewxd.
  • Your ssh_options no longer silently discards the connect bound.
    Previously the 1-second ConnectTimeout lived in the default value of
    ssh_options, so setting ssh_options at all — a key file, a port —
    replaced it and left connects unbounded. Now the bounds are merged with
    whatever you set, and ConnectTimeout/ServerAliveInterval follow your
    timeout value 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).