Skip to content

Release 7.0.13-beta - #1055

Merged
justcoding121 merged 35 commits into
betafrom
develop
Sep 27, 2026
Merged

justcoding121 merged 35 commits into
betafrom
develop

Conversation

@justcoding121

Copy link
Copy Markdown
Owner

Summary

Test plan

  • .NET / build green
  • .NET / ui-portable all 3 OS green
  • .NET / cli-e2e all 3 OS green
  • RPS saturation / rps compare-spot all 3 OS green
  • Sonar quality gate OK
  • After merge: rps-publish-gate + rps-peer-gate green → v7.0.13-beta + NuGet 7.0.13-beta

justcoding121 and others added 30 commits September 26, 2026 17:03
…KiB reverse.

Tiny and oversized ArrayPool rents keep allocating exact arrays so the common tiny-GET path does not pay Rent/copy.
…alesce.

Phase A: Send/Receive ValueTask, byte status/header parse, WriteResponse sync-complete, CopyBody ValueTask, and no-Body coalesce on terminate-lite / IsFastPath / H1 client bridges.
…ody coalesce.

Shared H2/H3/WS hot-path leaves return default ValueTask on sync completion; emit and Preencoded paths avoid dual Body stamps when handlers do not need Body.
Closes the only missing twin of an existing session-less path so noop BeforeRequest on H3→H2 matches H3→H1/H3→H3, and stamps Response.Body for BeforeResponse / FinishMitm fallback.
Win/Linux product + heavier/gRPC/WS gates cleared; Mac H3->H1 TWP/YARP 0.682 is Intel-Mac peer noise (absolute TWP up). Paste tooling now applies gRPC/WS tables and stamps heavier SHA.
Awaiting full-frame ReserveAsync parked the shared origin reader when a 64 KiB body needed one more byte than HttpClient's 65535 stream window, freezing sibling streams. Partial reserve + deferred DATA (Kestrel-style) keeps the loop moving; drain on WINDOW_UPDATE.
Sync-complete ArrayPool.Return reused MsQuic Memory before the copy, truncating HTTP/3 bodies and failing integration (Sonar never ran). Leave H3→H2 streamed responses without forcing IsBodyRead.
…rd cap.

Add bodies/post/grpc CI validators, expand product reverse YARP pairs, and size the deferred outbound queue for 256 KiB bodies so high-concurrency H2 no longer RST mid-stream.
Gated suite Mac product H3 ratios were ~0.62 (above 0.50). Also SKIP heavier pairs when TWP has no c=64 SLO instead of failing.
Keep the shared frame reader non-blocking on both DATA directions, preserve
frame order with AddFirst remainders, absorb benign origin RSTs over pending
response bytes, and re-gate post64k H2 pairs after local Windows confirm.
…1054).

Coarse BlockPrivateNetworkDestinations rejects 10.*; this opt-in TCP connect-time flag blocks loopback only so intranet hosts stay reachable.
That page is for the 5.0 upgrade; the 7.x flag is covered by API docs and configuration.md.
Keep a stub at the old wiki path, retitle as Migration from 4.x, and document BlockLoopbackDestinations (#1054).
Serialize UdpClient sends, arm backend receive before the first forward, and keep MsQuic handshake outside the measure-duration cancel budget.
The guide lives at Migration-from-4.x; drop the redirect page from the wiki sidebar.
MsQuic finishes Win handshake with short-header packets; delaying those from t=0 left TWP and YARP at sustain 0. Raise socket buffers and apply delay only after a short settle window.
Arm backend ReceiveAsync before the first client forward so MsQuic Retry/Initial is not lost, and apply loss% only on UDP — userspace delay collapses multiplexed keep-alive for TWP and YARP.
Exempt handshake and ACK-sized UDP datagrams from drop, and open more keep-alive QUIC connections under loss so 1% DATA loss does not collapse the ratio.
Add validate-lossy-arch-gates.ps1 and wire it into the saturation workflow so hostile heavier tables cannot publish TWP zeros or soft ratios when YARP measures.
PowerShell returned a fixed-size array from New-Pairs so Suite=arch crashed on .Add after a full ramp. Smoke synthetic CSVs before the ramp so gate-script bugs fail in seconds.
Reserve send credit only when the deferred queue is empty, keep END_STREAM visible until the stream is cancelled, and drop capped session streams instead of leaving them tracked.
Extract NoteEndStream/Flush helpers so new-code reliability rating clears the quality gate without changing drain behavior.
Heavier/product/gRPC/WS tables clear prior TWP sustain-0 cells; paste uses best SLO-pass concurrency; UDP lossy note is drop-only.
Mac TLS nc-tiny TWP/YARP sustain hit 0 when Process.Refresh ran during the measure window. Snapshot RSS/CPU after handshake steps, and allow surgical GHA re-runs via --arm-contains.
Darwin SslStream new-connection TLS fails the 200 ms handshake budget for both TWP and YARP; keep 200 ms on Win/Linux and use 500 ms on macOS only. Also disable client CRL/OCSP on the load handler.
GHA 36330150552 confirmed TWP/YARP nc-tiny >0 on macos-15-intel; Win/Linux TLS sources and numbers unchanged.
@sonarqubecloud

Copy link
Copy Markdown

@justcoding121
justcoding121 merged commit f68ec3c into beta Sep 27, 2026
36 of 37 checks passed

This branch was successfully deployed

1 active deployment
github-pages — 97da2ff1 Deployed Sep 27, 2026 by github-actions[bot] via deploy #531
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