Skip to content

release: 0.20.392 - #392

Merged
MDA2AV merged 1 commit into
mainfrom
release/0.20.392
Oct 24, 2026
Merged

MDA2AV merged 1 commit into
mainfrom
release/0.20.392

Conversation

@MDA2AV

@MDA2AV MDA2AV commented Oct 24, 2026

Copy link
Copy Markdown
Owner

All eleven published packages share one version, as always. The bump is only their Version elements; IoxideRuntime.Version is generated from ioxide.csproj. ioxide.redis.stackexchange is bumped too, so a manual pack matches, but CI does not pack it.

Carries everything since 0.18.374:

Breaking

Native

The packages ship the library; consumers rebuild nothing. Checked from outside the repo: a net10.0 app referencing the packed ioxide, ioxide.ngtcp2 and ioxide.http3 0.20.392, restored into a private packages folder, reports IoxideRuntime.Version 0.20.392 and serves h3 and TCP on one reactor. curl-h3, verifying against the app's CA, gets the h3 response, and without the CA it refuses the certificate. The app loads libioxide_ngtcp2.so from the package's runtimes/linux-x64/native, byte-identical to the one committed here.

On this branch's tree (main at b0fbb69, plus the bump), all eight suites pass with none skipped: E2E 326, Unit 105, Http 89, Tls 194, Chaos 80, File 5, Pg 18 and Redis 6. The tls module was loaded, so the kTLS tests ran.

One test stays pending, in Redis (#336): it pins a known gap and fails the run once the gap is fixed. The other seven suites have none left.

All eleven published packages share one version; the bump is only their Version elements, and
IoxideRuntime.Version is generated from ioxide.csproj. ioxide.redis.stackexchange is bumped too,
though CI does not pack it.

On this tree (main at b0fbb69 plus the bump) all eight suites pass with none skipped: E2E 326,
Unit 105, Http 89, Tls 194, Chaos 80, File 5, Pg 18 and Redis 6, with one test pending in Redis
(#336).
@MDA2AV
MDA2AV merged commit bd33a80 into main Oct 24, 2026
1 check passed
MDA2AV added a commit that referenced this pull request Oct 24, 2026
…topped (#394)

E2E crashed with exit 139 in about a third of CI runs since #388, the #392 release merge among them,
so 0.20.392 was never packed or published. Tests wrote `using var engine = new QuicEngine(...)`,
which disposed the engine where the test body ended, before the runner stopped the server. The
reactor's teardown then freed each live connection through ptls_free, which reads the TLS context
the engine had already freed. It crashed only when that memory had been reused. Under glibc's
malloc perturb it crashes on every run, on main and on a build from before #388 alike.

TestServer.Own hands an engine to the harness, which disposes it in StopAll once the reactors have
joined. The 145 sites that disposed theirs in the test body now use it.
@MDA2AV MDA2AV mentioned this pull request Oct 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant