No description
Find a file
René Linder 537c488f9a HTTPLIB/NETLIB-140: WS-H2-Server-Push aus Fremd-Threads marshallen (Cross-Thread-Crash-Fix)
Realer purepower-Prod-Crash (SIGABRT, Core-Dump): ein WS-Broadcast (System-Channel-Push)
aus einem App-/Publisher-Thread rief _WS_H2_TransportSend → H2_Stream::SendData → NET_Core-
Send-Owner-Thread-Guard → abort(). Doppelt unsicher: (a) Guard-Abort, (b) H2-Connection-
State ist single-threaded (owning Data-Worker, kein interner Lock) → State-Race.

Fix (Marshal): _WS_H2_TransportSend prueft NET_Core::IsKnownWorkerThread(). Auf einem Worker
→ direkt senden (Fast-Path). Aus einem Nicht-Worker-Thread → Frame an die _WSStreamBridge
(neue pending-Queue, _ws_bridge_mutex) enqueuen + NET_Core::_KickDataJob(conn) → der owning
Data-Worker drained in _HTTP_OnDataImpl (_WS_DrainPendingH2) und sendet H2_Stream::SendData
auf SEINEM Thread. Pending-Frames werden bei Bridge-Cleanup freigegeben (kein Leak).
(H1 nutzte bereits SubmitPacket, H3 den lock-free QUIC-send_ring → schon thread-safe.)

Regressionstest: _TestWSCrossThreadSendMarshals() (WS_TestSuite Section 20) — WS-H2-Send aus
einem frischen Nicht-Worker-Thread (Guard aktiv) MUSS marshallen statt aborten; verifiziert
kein SIGABRT + genau 1 Frame gequeued. make test 10/10.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 07:30:50 +02:00
ACME_Protokoll.pbi HTTPLIB-76: ACME _challenges-Map thread-safe (Route-IO-Thread ∥ Order-Flow) 2026-06-01 09:25:26 +02:00
H2_Frame.pbi HTTPLIB-42: RFC 7838 ALTSVC-Frame (0x0A) — Alt-Svc via Frame statt nur Header 2026-05-31 06:41:41 +02:00
H2_Stream.pbi HTTPLIB-79: H2 _sd Owner-Ref auf Sender-Completion freigeben — per-Request-Leak gefixt 2026-06-05 13:53:35 +02:00
H3_Frame.pbi HTTPLIB-85 (Teil 1): H3 inkrementelles DATA-Frame-Parsing — Heap-Overflow-Crash bei großen Bodies gefixt 2026-06-07 11:41:34 +02:00
H3_Stream.pbi HTTPLIB-85 (Teil 1): H3 inkrementelles DATA-Frame-Parsing — Heap-Overflow-Crash bei großen Bodies gefixt 2026-06-07 11:41:34 +02:00
HPACK_Codec.pbi Version-Bump V3.9.1 → V3.9.2 (Kimi-Sprint Fixes) 2026-05-20 23:19:24 +02:00
HTTP_Client.pbi HTTPLIB-85 (Teil 2): Streaming-Download im Client — Body chunk-weise auf Disk (bounded RAM) 2026-06-07 11:45:16 +02:00
HTTP_PKI.pbi Version-Bump V3.9.1 → V3.9.2 (Kimi-Sprint Fixes) 2026-05-20 23:19:24 +02:00
HTTP_Protokoll.pbi HTTPLIB-77: _mime_types lock-/cursor-frei (lhs_arena::HashMap) + Eager-Init 2026-06-01 09:29:44 +02:00
HTTP_Server.pbi HTTPLIB/NETLIB-140: WS-H2-Server-Push aus Fremd-Threads marshallen (Cross-Thread-Crash-Fix) 2026-06-08 07:30:50 +02:00
HTTP_Version.pbi HTTPLIB-14: #HTTP_LIB_VERSION + GetLibVersion() Public-API 2026-05-30 10:28:56 +02:00
QPACK_Codec.pbi HTTPLIB-84: Dynamic QPACK (interop-safe, non-blocking) + kooperativer Client 2026-06-07 10:19:35 +02:00
WS_Connection.pbi HTTPLIB-WSRSS (GC_MEM P5 Achse 3): WS recv_buf/frag_buf-Shrink + Buffer-Gauge 2026-06-03 16:23:58 +02:00
WS_Deflate.pbi HTTPLIB-41: RFC 7692 permessage-deflate fuer WebSocket (H1/H2/H3) 2026-05-30 17:24:06 +02:00
WS_Frame.pbi HTTPLIB-41: RFC 7692 permessage-deflate fuer WebSocket (H1/H2/H3) 2026-05-30 17:24:06 +02:00