Skip to content

PingerPlot 1.3.2

Latest

Choose a tag to compare

@github-actions github-actions released this 21 Aug 18:44

PingerPlot 1.3.2

Acts on an independent third-party audit of 1.3.1. All fifteen findings are
addressed. No new features; the theme is that several ways the app could stop
doing its job did so silently, and now say so.

Fixed

  • One malformed geo reply killed the lookup worker permanently, and the Map
    tab stopped resolving with no error and no retry.
  • A probe log that could not be opened was disabled silently: the error was
    written to the status line, which the worker overwrites milliseconds later.
  • Headless never checked whether the ICMP backend works, so an unusable
    backend read as "destination never answered" and pointed the operator at
    the network instead of at a sysctl.
  • --baseline could crash a scheduled job after printing its report, and skip
    --report-csv, by reading a live monitor's hop list without the lock.
  • On POSIX a source IP the machine does not hold raised a bare errno instead
    of being rejected by name -- and inside a round it read as 100% packet loss
    on a path that was fine.
  • Loading a session left a permanently dead row in the Targets grid, rewritten
    on every save.
  • The UDP port walk could wrap to 0 and silently lose a hop from the round.
  • socket.SIO_RCVALL is Windows-only and escaped every caller's except OSError.
  • Alert clearing logged, beeped and fired the webhook while holding the lock.
  • The geo response body is now read with a 64 KB bound.

Changed

  • The release workflow no longer interpolates ${{ }} into a shell script, and
    validates the tag by character set as well as shape. Actions are pinned by
    commit SHA, with Dependabot to keep them current.
  • The Engine dialog explains that UDP traceroute walks the destination port.

Notes

  • 370 -> 424 tests. gui.py is under test for the first time, via a real
    gui.App under xvfb on Linux and a withdrawn root on Windows.
  • One test depended on what the LAN happens to do; it is now deterministic.
  • Every fix was verified by reverting it and watching its test go red.