Skip to content

Orbit v2.5.1

Choose a tag to compare

@github-actions github-actions released this 12 Oct 01:07
· 11 commits to main since this release

Orbit 2.5.1 is a reliability release. It fixes two bugs found by reviewing Orbit against Syncthing; there are no new features.

Fixes

  • Devices with slightly different clocks are served again. Every expiry check had zero tolerance. A device whose clock ran 1 s ahead of the connection service had every announcement refused. One 1 s behind refused the service's challenges, relay tickets and peer offers, so even relay fallback failed. LAN discovery, invitation mailboxes and joining had the same problem between two devices. Expiry checks now allow 30 s of clock difference (protocol.MaxClockSkew), and devices request 30 s shorter lifetimes so existing services also accept them. Expired items are still always refused. This was also the cause of the intermittent CI failures listed under 2.5.0's known issues.
  • Edits that keep the same size and modification time are no longer missed. Quick scans skipped a file whose size, modification time and inode were unchanged. An in-place edit that restored the timestamp (cp -p, touch -r, or two equal-size saves within one timestamp tick) was only picked up by the daily full-content scan. Quick scans now also compare ctime, which only the kernel sets, and rehash a file once when its last observation was within 2 s of the change.

Compatibility

  • No protocol, state or configuration changes; upgrade in place.
  • orbit-net is unchanged: keep running orbit-net 1.3.0 (tarballs on the v2.5.0 release). 2.5.1 devices work with it without a redeploy.

Verification

  • Stress run of the formerly intermittent tests (24 concurrent race-instrumented processes): 6 failures in 96 runs before, 0 in 96 after.
  • New regression tests fail on 2.5.0 and pass on 2.5.1: a service clock 10 s ahead and 10 s behind, and the restored-timestamp edit.
  • Full CI suite on the tag, plus a live check on three devices served by an orbit-net 1.3.0 service.

Known issues

  • A device whose clock is off by more than a record's lifetime (30 s for relay tickets, 60 s for challenges) still cannot connect; keep NTP enabled.
  • Linux only. No TURN, UPnP or port mapping: when no direct path exists, traffic uses the service's budgeted relay.