You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by "ThisaraWeerakoon (via GitHub)" <gi...@apache.org> on 2026/10/23 06:33:32 UTC

[PR] Bump httpcore/httpcore-nio to 4.4.16 and fix a connection-threading regression it introduces [synapse]

ThisaraWeerakoon opened a new pull request, #119:
URL: https://github.com/apache/synapse/pull/119

   ## What
   
   Bumps `httpcore`/`httpcore-nio` from 4.3.3 (2014) to 4.4.16, and fixes a connection-lifecycle
   regression that the bump introduces in the `nhttp` transport.
   
   ## Why
   
   4.3.3 is 18 releases and ~91 fixes behind. Among other things, 4.4.13+ tightened how outgoing
   header values are serialized: embedded carriage-return and line-feed characters within a header
   value are now normalized to a single space at write time, rather than passed through verbatim as
   4.3.3 does. This brings Synapse's header output closer to what RFC 9112's field-value grammar
   expects, and is one of several correctness fixes bundled into this range of releases.
   
   ## The regression and its fix
   
   In httpcore ≤4.3.x, `DefaultNHttpServerConnection.produceOutput` cleared the connection's
   `WRITE` interest once its output buffer was drained. 4.4 removed that step to support request
   pipelining. `nhttp` doesn't pipeline, and it submits a response from a worker thread rather than
   the I/O dispatcher thread — with `WRITE` interest left permanently armed, the dispatcher thread
   keeps re-entering `produceOutput` and can touch the connection's (non-thread-safe) session output
   buffer at the same time a worker thread is writing a new response into it, corrupting its
   position/limit state.
   
   `SynapseNHttpServerConnection` (new) and `SynapseNHttpClientConnection` restore the 4.3.x
   `WRITE`-clearing behavior, on both the server and client side of `nhttp` connections.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org