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 <[email protected]> 
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 [email protected] 
> > 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

Reply via email to