Hi, I've applied the suggested changes. Diff's below.
> can the linux code be ported across? (we don't have
> SO_RCVBUFFORCE which ignore the max limit, but
> SO_RCVBUF will at least allow up to 2MB). if so,
> doing that (and changing the amount it's trying to
> raise to cap it to 2MB on OpenBSD, or at least
> retry capped to 2MB if it fails) is a better
> approach than telling the user to unilaterally
> raise the socket buffer for all programs via sysctl.
I've also sent that suggestion to quic-go. I wish I
could make a PR, but I don't feel confident with Go.
[1] https://github.com/quic-go/quic-go/issues/3476#issuecomment-3831146698
Index: pkg/README
===================================================================
RCS file: /cvs/ports/net/syncthing/pkg/README,v
diff -u -p -u -p -r1.9 README
--- pkg/README 1 Jan 2026 22:24:37 -0000 1.9
+++ pkg/README 1 Feb 2026 15:13:22 -0000
@@ -22,8 +22,8 @@ Starting via RC script
Syncthing can be started via the included RC script, thus running
Syncthing as a system service. This is fine for single user
configurations. Under this mode of operation, Syncthing runs as the
-_syncthing user, and the default location for folders is
-${LOCALSTATEDIR}/syncthing.
+_syncthing user (or whatever `syncthing_user` is set to in RC), and
+the default location for folders is ${LOCALSTATEDIR}/syncthing.
Starting Manually
-----------------
@@ -45,6 +45,17 @@ This will result in a new tmux(1) sessio
boot. The user can later use `tmux attach` to view and control their
Syncthing process.
+Logging
+=======
+
+By default, logs are not saved anywhere; but you can read the logs
+for the current session on the web GUI.
+
+To log to a file, set these flags:
+
+ # rcctl set syncthing flags --log-file /var/log/syncthing/syncthing.log \
+ --log-max-old-files 5 --log-max-size 2000000
+
File Descriptor Limits
======================
@@ -87,3 +98,22 @@ Another option is to turn off the file w
This will result in much reduced file descriptor usage at the cost of a
(configurable) latency. See "watch for changes" and "full rescan interval" in
the "advanced" tab in a folder's settings (on the web UI).
+
+UDP Buffer Size
+===============
+
+Syncthing uses quic-go for QUIC transport. On other platforms, it is
+able to increase the UDP buffer size automatically on startup; but it does
+not have an implementation for OpenBSD, so you get this warning instead:
+
+ 2026-01-24 12:33:01 INF failed to increase receive buffer size
+ (wanted: 7168 kiB, got 0 kiB). See
+ https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details.
+
+This can be manually raised system-wide by setting a sysctl. Note that the
+maximum size is 2097152 (~2 MB), which is well below what quic-go expects.
+Hopefully it should be enough for it to minimally function.
+
+ # sysctl net.inet.udp.recvspace=2097152
+
+This can be set at boot in sysctl.conf(5).
On Monday, January 26th, 2026 at 12:34, Stuart Henderson <stu@spacehopper.org> wrote:
>
>
>
>
> On 2026/01/26 13:24, Douglas Silva wrote:
>
> > +By default, logs are not saved anywhere; but you can read the logs
> > +for the current session on the web GUI.
> > +
> > +To log to a file, use `syncthing_flags`. Example:
> > +
> > + syncthing_flags="--log-file /var/log/syncthing/syncthing.log --log-max-old-files 5 --log-max-size 2000000"
>
>
> the recommended interface is 'rcctl set' for this, also wrap the line
> e.g.
>
> rcctl set syncthing flags --log-file /var/log/syncthing/syncthing.log \
> --log-max-old-files 5 --log-max-size 2000000
>
> > +UDP Buffer Size
> > +===============
>
>
> can the linux code be ported across? (we don't have SO_RCVBUFFORCE which
> ignore the max limit, but SO_RCVBUF will at least allow up to 2MB).
> if so, doing that (and changing the amount it's trying to raise to
> cap it to 2MB on OpenBSD, or at least retry capped to 2MB if it fails)
> is a better approach than telling the user to unilaterally raise the
> socket buffer for all programs via sysctl.
>
> there's certainly no point warning above 2MB, the OS won't accept it,
> so there's nothing the user can do.
>
> if the code can't be changed, ...
>
> > +quic-go requests about 8 MB of UDP buffer space. On some platforms, it is able to increase the limit automatically on startup. On OpenBSD this fails with the following warning:
> > +
> > + 2026-01-24 12:33:01 INF failed to increase receive buffer size (wanted: 7168 kiB, got 0 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details.
> > +
> > +We can manually increase it by changing `net.inet.udp.recvspace`. Unfortunately, this limit can only be raised to a maximum of 2097152 (approx. 2 MB). For context, see the discussion at https://github.com/quic-go/quic-go/issues/3476.
> > +
> > + # sysctl net.inet.udp.recvspace=2097152
> > +
> > +Add that to sysctl.conf(5) to permanently set it.
>
>
> text needs word-wrapping.
>
> it doesn't attempt to change the limit at all on OpenBSD, there is
> simply no code for it, so saying that it has "failed" doesn't quite
> sit right...
>
> ---
> syncthing uses quic-go for QUIC transport. This wants to increase UDP
> socket buffers, however it does not has an OpenBSD implementation to
> actually do this, and otherwise logs a warning, e.g.:
>
> INF failed to increase receive buffer size (wanted: 7168 kiB, got 0 kiB).
> See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details.
>
> This can be manually raised for the entire system by setting a sysctl.
> The maximum available is 2097152 (2MB).
>
> # sysctl net.inet.udp.recvspace=2097152
>
> This can be set at boot in sysctl.conf(5).
> ---
>
>
> > On Sunday, January 25th, 2026 at 13:00, Douglas Silva doug.hs@proton.me wrote:
> >
> > > Hi,
> > >
> > > When you start Syncthing, one of the first log entries is this warning:
> > >
> > > 2026-01-24 12:33:01 INF failed to increase receive buffer size (wanted: 7168 kiB, got 0 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details.
> > >
> > > The linked wiki page explains that quic-go tries to automatically increase the buffer size on some platforms (not BSDs), and it has instructions for manually doing it on others; but the section on BSDs doesn't apply to OpenBSD. There is an open issue [1] about it.
> > >
> > > Someone there has figured out that the sysctl variable to change here is "net.inet.udp.recvspace", but it can only be increased to about 2 MB (2097152) — well below the target 7.5 MB (8441037). I have no idea whether quic-go is able to work properly with this. Either way, the warning persists.
> > >
> > > So, my idea is to:
> > >
> > > 1. Modify our package README with instructions to increase the buffer size to maximum.
> > > 2. Silence the warning by setting the variable "QUIC_GO_DISABLE_RECEIVE_BUFFER_WARNING" [2] [3]
> > >
> > > What do you think?
> > >
> > > [1] https://github.com/quic-go/quic-go/issues/3476
> > > [2] https://github.com/quic-go/quic-go/blob/4a8af22606c2d237da39212a734b80026a9a0bb0/sys_conn.go#L59
> > > [3] https://github.com/quic-go/quic-go/issues/3801#issuecomment-1882365505
>
>
> On 2026/01/26 14:25, Edd Barrett wrote:
>
> > Hi,
> >
> > On Mon, Jan 26, 2026 at 01:24:45PM +0000, Douglas Silva wrote:
> >
> > > Below are my proposed additions to the README file, assuming we don't want to silence the warning.
> > >
> > > I've added a short section on logging too.
> >
> > Looks good, but please wrap long lines at column 80 (as mentioned in
> > README.template).
> >
> > Also, from memory QUIC is optional, and syncthing will work without it. Is it
> > worth mentioning this?
> >
> > --
> > Best Regards
> > Edd Barrett
> >
> > https://www.theunixzoo.co.uk
No comments:
Post a Comment