Hello,

Follow-up to correct and add context to my earlier report.

First, a correction: I had adapted upstream commit 7791f535 ("dco: process
messages immediately after read", fixes #919) by hand, not realising the fix
had already been backported to the upstream release/2.6 branch and shipped in
the OpenVPN 2.6.20 stable release. This was confirmed by Gert Doering on
openvpn-devel:

https://sourceforge.net/p/openvpn/mailman/openvpn-devel/thread/aj2LVcoBm4HVKF8M%40greenie.muc.de/#msg59351313

  7791f535:
https://github.com/OpenVPN/openvpn/commit/7791f5358a5574d4ef1bd27e2d52300c9d98bd72

The upstream backport is not a single commit but a reviewed 3-commit series
(authored on top of v2.6.19, Acked-by Gert Doering):

  1fbbe91d  dco linux: avoid redefining ovpn enums (2.6)
https://github.com/OpenVPN/openvpn/commit/1fbbe91d292fb925f5af73b512d7d1c83abfe714

876a8cf5 dco: port core/context infrastructure needed for backport of 7791f53 https://github.com/OpenVPN/openvpn/commit/876a8cf5fd6166a22bfe6b6f37889d3cff3a17c6

  e78a8af2  dco: backport immediate notification processing on Linux and
            FreeBSD   (Github: fixes OpenVPN/openvpn#919)
https://github.com/OpenVPN/openvpn/commit/e78a8af2f5ce5ef3bbfefc2dc8efeca84027c018

This series does NOT cleanly cherry-pick onto the trixie base (2.6.14):
876a8cf5/e78a8af2 conflict because they sit on top of the DCO peer-float
backport and the DCO/persist-tun reconnect repair that landed in 2.6.15-2.6.19:

  b0b123b3  dco: backport OS-independent part of peer float support
https://github.com/OpenVPN/openvpn/commit/b0b123b3a7d6b64e236bc0b9836cb73d76c130e2

  3c9fe881  dco: support float notifications on FreeBSD
https://github.com/OpenVPN/openvpn/commit/3c9fe881207df94e938ba7325a0cd46765d6ba6c

fae4a9e3 Repair interaction between DCO and persist-tun after reconnection https://github.com/OpenVPN/openvpn/commit/fae4a9e3f51554bdecc9df45344135006da1f0d9

So I see two honest options, each with a real downside, and I'm genuinely
unsure which fits stable policy best:

1) The targeted patch I originally attached. It is significantly smaller and
    lower-risk than the full upstream delta, so as a minimal stable fix it
isn't unreasonable. The downside is that it diverges from upstream: it is
    a reimplementation rather than what upstream shipped, and it would make
    pulling in any future DCO fixes harder, since later cherry-picks would
conflict against a non-upstream base. I'm not really comfortable with that.

 2) Take the upstream fix as released, i.e. effectively the whole
2.6.15-2.6.19 DCO delta (the 2.6.20 release). This is upstream-aligned and
    keeps future maintenance clean, but it is a much larger change than a
    typical stable update and would be the SRM's call.

I'll defer to the maintainer and the SRM on which (if either) is appropriate
for trixie. I'm happy to help test or review whichever direction you prefer,
including re-rolling the targeted patch with proper DEP-3 provenance if that's
the path, or validating a 2.6.20-based build.

For what it's worth, the fix is already available to trixie users today via
trixie-backports (openvpn 2.7.x carries it natively), so there is a supported
path for anyone hitting this on stable in the meantime.

Cheers,
Thomas

Reply via email to