Please help testing 1.2.0 release candidate

The upcoming 1.2.0 release contains some exciting stuff, the most important one being QUIC support added by Audrius. Ideally this means we can connect directly between devices even in hairy NAT situations where relays would otherwise be used. The 1.2.0 release also makes some other important changes, full release notes below.

We’re quite confident that the current 1.2.0-rc.3 release is the one that will go out, but it would be great with some more eyes on it. If you’re feeling even slightly adventurous, maybe change your setup to automatically upgrade to release candidates?


v1.2.0-rc.3

  • This release does not interoperate with Syncthing 0.14.45 or older.

  • This release adds QUIC with NAT traversal as a new transport protocol. TCP is usually more performant and remains the preferred way of connection when possible.

  • This release adds automatic crash reporting. See https://docs.syncthing.net/users/crashrep.html for details.

  • This release makes large / variable block size the only available mode of operation; small / fixed blocks are deprecated. See https://docs.syncthing.net/advanced/folder-uselargeblocks.html for details.

  • This release reverts the version naming change in #4586 (v1.1.4). Versions are now named with the time of their archiving, and the file modification time is unchanged when archiving. An exception to this is the “Trashcan” versioner which does not modify the name - instead it does set the file modification time the time of archiving.

Bugfixes

  • #4170: panic: bug: ClusterConfig called on closed or nonexistent connection
  • #5609: Filesystem watching failed when parent folder is not listable
  • #5652: Connection error after closing failed items list and opening another list
  • #5765: Verioner cleanup looks at the wrong time
  • #5766: Support bundle doesn’t include errors list, instead printing Support bundle: failed to create errors.json: <nil>
  • #5770: Scan failure blocks “Rescan” button
  • #5777: Spurious need to “revert” nonexistent changes with Receive Only folder on Android
  • #5780: Panic when folder disappears while scanning
  • #5781: Shutdown takes too long, triggering fmut deadlock panic
  • #5791: Puller complains about invalid filenames which are long gone

Enhancements

  • #959: Automatic error log sending to dev. team
  • #3345: Show last connection error per discovered address
  • #5377: Use of QUIC for transport
  • #5631: Dockerfile ENTRYPOINT doesn’t pass along extra arguments from “docker run”
  • #5697: Handle fatal watch errors gracefully
  • #5774: WebUI table column widths broken on narrow displays

Other issues

  • #5760: Dead link in README.md
  • #5796: TestPullInvalidIgnoredSR/SO is flaky
6 Likes

Is it possible to force QUIC connections when testing?

1 Like

Yes, in two ways. One is to disable the TCP listener; Actions -> Settings -> Connections -> Sync Protocol Listen Addresses, set quic://:22000 (yep lots of colons and slashes there in the middle) instead of default. Might need to do this on both sides.

The other is to hardcode a peer address to use QUIC, but this’ll only work if you have a static address/port to point towards, which is not where QUIC shines.

It is expected that QUIC connections will be slower than TCP connections when you’re on a good network (i.e., gigabit LAN or so).

But on better on a lossy connection or over the internet? And it is like uTP where we expect it to avoid bufferboat where a bit transfer by syncthing won’t add lots of latency/lag to other internet traffic.

And elsewhere you said QUIC handles NAT traversal in more cases?

Maybe? :slight_smile:

Yep, for example when both sides are behind (certain types of) NAT with no port mapping. Also, potentially, the case where both sides are behind outbound-only firewalls with state tracking.

I have some of those nasty NAT situations. I have been running 1.2 but my machines use a Zerotier VPN and syncthing always finds its peers using the Zerotier pseudo network device.

I should see if I can turn off the VPN.

I haven’t had any troubles with 1.2, but I would like the ability to tell it to prefer QUIC connections.

You can change the listen addresses from default to quic://0.0.0.0, which will force quic only.

1 Like