Avoid ArrayQueue allocation in HttpServerCodec#16596
Conversation
|
Yeah, not really a fan of this. What are you measuring in the screen shot? Would it make sense to reduce the initial size of the ArrayDeque? |
@chrisvest allocations, for some of our envs, the main problem is GC. We can easily scale CPUs, but when we reach a certain level of allocations, more CPUs won't help. So right now we're aggressively reducing allocations in our own code, netty and other 3-d parties.
Yeap. It will help partially. I think it can be safely decreased 2 times, maybe even 4. |
|
I'm fine with this change. But can you add some tests? In particular for the transitions to the queue |
|
@yawkat added tests. |
|
Thanks @doom369 |
Motivation: `HttpServerCodec` always allocates an `ArrayDeque`. However, the code inside needs only 2 actual headers: HEAD, CONNECT. So we can pack that as 2 bits within long field, to avoid `ArrayDeque` allocation + fallback for `ArrayDeque`, which is unlikely to happen with typical workloads. <img width="381" height="62" alt="image" src="https://github.com/user-attachments/assets/0bfe1501-4138-4223-abba-2630c5fd938b" /> Modification: Introduce `long methodQueue`, which we use as a queue to pack 2 bits for every incoming request + fallback to `ArrayQueue`, when `long methodQueue` is overflowed. Result: No more `ArrayQueue` allocation when a new pipeline is built with `HttpServerCodec`. P. S. It complicates code and maintenance, so feel free to close if you think it's not worth it. As it's easy to introduce our own fixed version. (cherry picked from commit 92117fe)
|
Auto-port PR for 5.0: #16648 |
Auto-port of #16596 to 5.0 Cherry-picked commit: 92117fe --- Motivation: `HttpServerCodec` always allocates an `ArrayDeque`. However, the code inside needs only 2 actual headers: HEAD, CONNECT. So we can pack that as 2 bits within long field, to avoid `ArrayDeque` allocation + fallback for `ArrayDeque`, which is unlikely to happen with typical workloads. <img width="381" height="62" alt="image" src="https://github.com/user-attachments/assets/0bfe1501-4138-4223-abba-2630c5fd938b" /> Modification: Introduce `long methodQueue`, which we use as a queue to pack 2 bits for every incoming request + fallback to `ArrayQueue`, when `long methodQueue` is overflowed. Result: No more `ArrayQueue` allocation when a new pipeline is built with `HttpServerCodec`. P. S. It complicates code and maintenance, so feel free to close if you think it's not worth it. As it's easy to introduce our own fixed version. --------- Co-authored-by: Dmytro Dumanskiy <[email protected]> Co-authored-by: Chris Vest <[email protected]>
…l [skip ci] Bumps [io.netty:netty-all](https://github.com/netty/netty) from 4.2.12.Final to 4.2.13.Final. Release notes *Sourced from [io.netty:netty-all's releases](https://github.com/netty/netty/releases).* > netty-4.2.13.Final > ------------------ > > CVEs Fixed > ---------- > > * [CVE-2026-42586](GHSA-rgrr-p7gp-5xj7) (netty-codec-redis) > * [CVE-2026-42578](GHSA-45q3-82m4-75jr) (netty-handler-proxy) > * [CVE-2026-42577](GHSA-rwm7-x88c-3g2p) (netty-transport-native-epoll) > * [CVE-2026-42587](GHSA-f6hv-jmp6-3vwv) (netty-codec-http, netty-codec-http2) > * [CVE-2026-41417](GHSA-v8h7-rr48-vmmv) (netty-codec-http) > * [CVE-2026-42581](GHSA-xxqh-mfjm-7mv9) (netty-codec-http) > * [CVE-2026-42580](GHSA-m4cv-j2px-7723) (netty-codec-http) > * [CVE-2026-42585](GHSA-38f8-5428-x5cv) (netty-codec-http) > * [CVE-2026-42579](GHSA-cm33-6792-r9fm) (netty-codec-dns) > * [CVE-2026-42582](GHSA-2c5c-chwr-9hqw) (netty-codec-http3) > * [CVE-2026-42583](GHSA-mj4r-2hfc-f8p6) (netty-codec, netty-codec-compression) > * [CVE-2026-42584](GHSA-57rv-r2g8-2cj3) (netty-codec-http) > * [CVE-2026-44248](GHSA-jfg9-48mv-9qgx) (netty-codec-mqtt) > > What's Changed > -------------- > > * Kqueue: sendfile EINTR doesn't advance offset — data duplication by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16544](https://redirect.github.com/netty/netty/pull/16544) > * Replace usage of strerror with thread-safe alternative by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16547](https://redirect.github.com/netty/netty/pull/16547) > * Fix implementation of strerror\_r\_xsi for GNU by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16546](https://redirect.github.com/netty/netty/pull/16546) > * Lazy init ArrayList in DefaultHeaders.getAll by [`@doom369`](https://github.com/doom369) in [netty/netty#16526](https://redirect.github.com/netty/netty/pull/16526) > * Less logging in AWS-LC build by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16565](https://redirect.github.com/netty/netty/pull/16565) > * Ensure the CRYPTO\_BUFFER\_POOL is also freed when we fail creating the SSLContext by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16545](https://redirect.github.com/netty/netty/pull/16545) > * Auto-port 4.2: Fix IndexOutOfBoundsException in StompSubframeDecoder on heartbeat by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16543](https://redirect.github.com/netty/netty/pull/16543) > * Avoid leak in PemReader on OutOfDirectMemoryError by [`@raipc`](https://github.com/raipc) in [netty/netty#16551](https://redirect.github.com/netty/netty/pull/16551) > * IoUring: Disable test while we debug to unblock other builds by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16581](https://redirect.github.com/netty/netty/pull/16581) > * Include user properties and subscription IDs in MqttProperties#isEmpty by [`@ShadowySpirits`](https://github.com/ShadowySpirits) in [netty/netty#16575](https://redirect.github.com/netty/netty/pull/16575) > * Native DNS resolver: Guard against malloc failures by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16559](https://redirect.github.com/netty/netty/pull/16559) > * Auto-port 4.2: Increase timeouts for QuicChannelConnectTest by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16578](https://redirect.github.com/netty/netty/pull/16578) > * Fix parsing HTTP chunks with multiple extensions by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16579](https://redirect.github.com/netty/netty/pull/16579) > * Bump org.codehaus.plexus:plexus-utils from 3.4.2 to 4.0.3 in /codec-native-quic by [`@dependabot`](https://github.com/dependabot)[bot] in [netty/netty#16572](https://redirect.github.com/netty/netty/pull/16572) > * Revert to PR build to Ubuntu 22.04 by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16595](https://redirect.github.com/netty/netty/pull/16595) > * Native transports: Correctly create pipe when pipe2 is not supported by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16592](https://redirect.github.com/netty/netty/pull/16592) > * Epoll: Cleanup code to always return negative value on failure by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16591](https://redirect.github.com/netty/netty/pull/16591) > * Fix component search fast path by [`@yawkat`](https://github.com/yawkat) in [netty/netty#16548](https://redirect.github.com/netty/netty/pull/16548) > * Stabilize read-only toStringMultipleThreads1 by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16608](https://redirect.github.com/netty/netty/pull/16608) > * Stabilize more AbstractByteBufTests by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16611](https://redirect.github.com/netty/netty/pull/16611) > * Remove note about needing 256-bit for PQC by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16605](https://redirect.github.com/netty/netty/pull/16605) > * Stabilize testSessionInvalidate for Conscrypt by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16615](https://redirect.github.com/netty/netty/pull/16615) > * Quic: Correctly handle SSL\_CTX\_new failures by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16622](https://redirect.github.com/netty/netty/pull/16622) > * Make LocalIoHandle public by [`@rdicroce`](https://github.com/rdicroce) in [netty/netty#16621](https://redirect.github.com/netty/netty/pull/16621) > * Quic: Fix shadowing of variable which leads to incorrectly handling errors by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16623](https://redirect.github.com/netty/netty/pull/16623) > * Auto-port 4.2: Use stream error for maxContentLength exceeded in InboundHttp2ToHttpAdapter by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16629](https://redirect.github.com/netty/netty/pull/16629) > * Fix `shutdownInput` bug in kqueue for empty recv buffer by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16630](https://redirect.github.com/netty/netty/pull/16630) > * fix FFM address semantics in directBufferAddress by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#16603](https://redirect.github.com/netty/netty/pull/16603) > * HTTP2: Ensure HTTP2 preface is always send as first message by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16636](https://redirect.github.com/netty/netty/pull/16636) > * Move Http2FrameCodecSubClassTest to correct package by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16640](https://redirect.github.com/netty/netty/pull/16640) > * Kqueue: Fix usage of LOCAL\_PEERPID by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16637](https://redirect.github.com/netty/netty/pull/16637) > * Avoid ArrayQueue allocation in HttpServerCodec by [`@doom369`](https://github.com/doom369) in [netty/netty#16596](https://redirect.github.com/netty/netty/pull/16596) > * Fix file descriptor reuse bug in kqueue by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16650](https://redirect.github.com/netty/netty/pull/16650) ... (truncated) Commits * [`b3844c8`](netty/netty@b3844c8) [maven-release-plugin] prepare release netty-4.2.13.Final * [`82f47fa`](netty/netty@82f47fa) Merge commit from fork * [`ada0999`](netty/netty@ada0999) Merge commit from fork * [`b4051e2`](netty/netty@b4051e2) Fix BrotliDecoder not forwarding all decompressed chunks * [`67207c1`](netty/netty@67207c1) Merge commit from fork * [`541ca7c`](netty/netty@541ca7c) Merge commit from fork * [`943edb3`](netty/netty@943edb3) Fix codec-dns tests * [`6459a28`](netty/netty@6459a28) Merge commit from fork * [`b4ba61b`](netty/netty@b4ba61b) Fix checkstyle in HttpObjectDecoder * [`977661f`](netty/netty@977661f) Merge commit from fork * Additional commits viewable in [compare view](netty/netty@netty-4.2.12.Final...netty-4.2.13.Final) [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
…ip ci] Bumps `netty.version` from 4.2.12.Final to 4.2.13.Final. Updates `io.netty:netty-transport` from 4.2.12.Final to 4.2.13.Final Release notes *Sourced from [io.netty:netty-transport's releases](https://github.com/netty/netty/releases).* > netty-4.2.13.Final > ------------------ > > CVEs Fixed > ---------- > > * [CVE-2026-42586](GHSA-rgrr-p7gp-5xj7) (netty-codec-redis) > * [CVE-2026-42578](GHSA-45q3-82m4-75jr) (netty-handler-proxy) > * [CVE-2026-42577](GHSA-rwm7-x88c-3g2p) (netty-transport-native-epoll) > * [CVE-2026-42587](GHSA-f6hv-jmp6-3vwv) (netty-codec-http, netty-codec-http2) > * [CVE-2026-41417](GHSA-v8h7-rr48-vmmv) (netty-codec-http) > * [CVE-2026-42581](GHSA-xxqh-mfjm-7mv9) (netty-codec-http) > * [CVE-2026-42580](GHSA-m4cv-j2px-7723) (netty-codec-http) > * [CVE-2026-42585](GHSA-38f8-5428-x5cv) (netty-codec-http) > * [CVE-2026-42579](GHSA-cm33-6792-r9fm) (netty-codec-dns) > * [CVE-2026-42582](GHSA-2c5c-chwr-9hqw) (netty-codec-http3) > * [CVE-2026-42583](GHSA-mj4r-2hfc-f8p6) (netty-codec, netty-codec-compression) > * [CVE-2026-42584](GHSA-57rv-r2g8-2cj3) (netty-codec-http) > * [CVE-2026-44248](GHSA-jfg9-48mv-9qgx) (netty-codec-mqtt) > > What's Changed > -------------- > > * Kqueue: sendfile EINTR doesn't advance offset — data duplication by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16544](https://redirect.github.com/netty/netty/pull/16544) > * Replace usage of strerror with thread-safe alternative by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16547](https://redirect.github.com/netty/netty/pull/16547) > * Fix implementation of strerror\_r\_xsi for GNU by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16546](https://redirect.github.com/netty/netty/pull/16546) > * Lazy init ArrayList in DefaultHeaders.getAll by [`@doom369`](https://github.com/doom369) in [netty/netty#16526](https://redirect.github.com/netty/netty/pull/16526) > * Less logging in AWS-LC build by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16565](https://redirect.github.com/netty/netty/pull/16565) > * Ensure the CRYPTO\_BUFFER\_POOL is also freed when we fail creating the SSLContext by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16545](https://redirect.github.com/netty/netty/pull/16545) > * Auto-port 4.2: Fix IndexOutOfBoundsException in StompSubframeDecoder on heartbeat by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16543](https://redirect.github.com/netty/netty/pull/16543) > * Avoid leak in PemReader on OutOfDirectMemoryError by [`@raipc`](https://github.com/raipc) in [netty/netty#16551](https://redirect.github.com/netty/netty/pull/16551) > * IoUring: Disable test while we debug to unblock other builds by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16581](https://redirect.github.com/netty/netty/pull/16581) > * Include user properties and subscription IDs in MqttProperties#isEmpty by [`@ShadowySpirits`](https://github.com/ShadowySpirits) in [netty/netty#16575](https://redirect.github.com/netty/netty/pull/16575) > * Native DNS resolver: Guard against malloc failures by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16559](https://redirect.github.com/netty/netty/pull/16559) > * Auto-port 4.2: Increase timeouts for QuicChannelConnectTest by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16578](https://redirect.github.com/netty/netty/pull/16578) > * Fix parsing HTTP chunks with multiple extensions by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16579](https://redirect.github.com/netty/netty/pull/16579) > * Bump org.codehaus.plexus:plexus-utils from 3.4.2 to 4.0.3 in /codec-native-quic by [`@dependabot`](https://github.com/dependabot)[bot] in [netty/netty#16572](https://redirect.github.com/netty/netty/pull/16572) > * Revert to PR build to Ubuntu 22.04 by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16595](https://redirect.github.com/netty/netty/pull/16595) > * Native transports: Correctly create pipe when pipe2 is not supported by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16592](https://redirect.github.com/netty/netty/pull/16592) > * Epoll: Cleanup code to always return negative value on failure by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16591](https://redirect.github.com/netty/netty/pull/16591) > * Fix component search fast path by [`@yawkat`](https://github.com/yawkat) in [netty/netty#16548](https://redirect.github.com/netty/netty/pull/16548) > * Stabilize read-only toStringMultipleThreads1 by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16608](https://redirect.github.com/netty/netty/pull/16608) > * Stabilize more AbstractByteBufTests by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16611](https://redirect.github.com/netty/netty/pull/16611) > * Remove note about needing 256-bit for PQC by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16605](https://redirect.github.com/netty/netty/pull/16605) > * Stabilize testSessionInvalidate for Conscrypt by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16615](https://redirect.github.com/netty/netty/pull/16615) > * Quic: Correctly handle SSL\_CTX\_new failures by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16622](https://redirect.github.com/netty/netty/pull/16622) > * Make LocalIoHandle public by [`@rdicroce`](https://github.com/rdicroce) in [netty/netty#16621](https://redirect.github.com/netty/netty/pull/16621) > * Quic: Fix shadowing of variable which leads to incorrectly handling errors by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16623](https://redirect.github.com/netty/netty/pull/16623) > * Auto-port 4.2: Use stream error for maxContentLength exceeded in InboundHttp2ToHttpAdapter by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16629](https://redirect.github.com/netty/netty/pull/16629) > * Fix `shutdownInput` bug in kqueue for empty recv buffer by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16630](https://redirect.github.com/netty/netty/pull/16630) > * fix FFM address semantics in directBufferAddress by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#16603](https://redirect.github.com/netty/netty/pull/16603) > * HTTP2: Ensure HTTP2 preface is always send as first message by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16636](https://redirect.github.com/netty/netty/pull/16636) > * Move Http2FrameCodecSubClassTest to correct package by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16640](https://redirect.github.com/netty/netty/pull/16640) > * Kqueue: Fix usage of LOCAL\_PEERPID by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16637](https://redirect.github.com/netty/netty/pull/16637) > * Avoid ArrayQueue allocation in HttpServerCodec by [`@doom369`](https://github.com/doom369) in [netty/netty#16596](https://redirect.github.com/netty/netty/pull/16596) > * Fix file descriptor reuse bug in kqueue by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16650](https://redirect.github.com/netty/netty/pull/16650) ... (truncated) Commits * [`b3844c8`](netty/netty@b3844c8) [maven-release-plugin] prepare release netty-4.2.13.Final * [`82f47fa`](netty/netty@82f47fa) Merge commit from fork * [`ada0999`](netty/netty@ada0999) Merge commit from fork * [`b4051e2`](netty/netty@b4051e2) Fix BrotliDecoder not forwarding all decompressed chunks * [`67207c1`](netty/netty@67207c1) Merge commit from fork * [`541ca7c`](netty/netty@541ca7c) Merge commit from fork * [`943edb3`](netty/netty@943edb3) Fix codec-dns tests * [`6459a28`](netty/netty@6459a28) Merge commit from fork * [`b4ba61b`](netty/netty@b4ba61b) Fix checkstyle in HttpObjectDecoder * [`977661f`](netty/netty@977661f) Merge commit from fork * Additional commits viewable in [compare view](netty/netty@netty-4.2.12.Final...netty-4.2.13.Final) Updates `io.netty:netty-codec` from 4.2.12.Final to 4.2.13.Final Release notes *Sourced from [io.netty:netty-codec's releases](https://github.com/netty/netty/releases).* > netty-4.2.13.Final > ------------------ > > CVEs Fixed > ---------- > > * [CVE-2026-42586](GHSA-rgrr-p7gp-5xj7) (netty-codec-redis) > * [CVE-2026-42578](GHSA-45q3-82m4-75jr) (netty-handler-proxy) > * [CVE-2026-42577](GHSA-rwm7-x88c-3g2p) (netty-transport-native-epoll) > * [CVE-2026-42587](GHSA-f6hv-jmp6-3vwv) (netty-codec-http, netty-codec-http2) > * [CVE-2026-41417](GHSA-v8h7-rr48-vmmv) (netty-codec-http) > * [CVE-2026-42581](GHSA-xxqh-mfjm-7mv9) (netty-codec-http) > * [CVE-2026-42580](GHSA-m4cv-j2px-7723) (netty-codec-http) > * [CVE-2026-42585](GHSA-38f8-5428-x5cv) (netty-codec-http) > * [CVE-2026-42579](GHSA-cm33-6792-r9fm) (netty-codec-dns) > * [CVE-2026-42582](GHSA-2c5c-chwr-9hqw) (netty-codec-http3) > * [CVE-2026-42583](GHSA-mj4r-2hfc-f8p6) (netty-codec, netty-codec-compression) > * [CVE-2026-42584](GHSA-57rv-r2g8-2cj3) (netty-codec-http) > * [CVE-2026-44248](GHSA-jfg9-48mv-9qgx) (netty-codec-mqtt) > > What's Changed > -------------- > > * Kqueue: sendfile EINTR doesn't advance offset — data duplication by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16544](https://redirect.github.com/netty/netty/pull/16544) > * Replace usage of strerror with thread-safe alternative by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16547](https://redirect.github.com/netty/netty/pull/16547) > * Fix implementation of strerror\_r\_xsi for GNU by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16546](https://redirect.github.com/netty/netty/pull/16546) > * Lazy init ArrayList in DefaultHeaders.getAll by [`@doom369`](https://github.com/doom369) in [netty/netty#16526](https://redirect.github.com/netty/netty/pull/16526) > * Less logging in AWS-LC build by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16565](https://redirect.github.com/netty/netty/pull/16565) > * Ensure the CRYPTO\_BUFFER\_POOL is also freed when we fail creating the SSLContext by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16545](https://redirect.github.com/netty/netty/pull/16545) > * Auto-port 4.2: Fix IndexOutOfBoundsException in StompSubframeDecoder on heartbeat by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16543](https://redirect.github.com/netty/netty/pull/16543) > * Avoid leak in PemReader on OutOfDirectMemoryError by [`@raipc`](https://github.com/raipc) in [netty/netty#16551](https://redirect.github.com/netty/netty/pull/16551) > * IoUring: Disable test while we debug to unblock other builds by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16581](https://redirect.github.com/netty/netty/pull/16581) > * Include user properties and subscription IDs in MqttProperties#isEmpty by [`@ShadowySpirits`](https://github.com/ShadowySpirits) in [netty/netty#16575](https://redirect.github.com/netty/netty/pull/16575) > * Native DNS resolver: Guard against malloc failures by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16559](https://redirect.github.com/netty/netty/pull/16559) > * Auto-port 4.2: Increase timeouts for QuicChannelConnectTest by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16578](https://redirect.github.com/netty/netty/pull/16578) > * Fix parsing HTTP chunks with multiple extensions by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16579](https://redirect.github.com/netty/netty/pull/16579) > * Bump org.codehaus.plexus:plexus-utils from 3.4.2 to 4.0.3 in /codec-native-quic by [`@dependabot`](https://github.com/dependabot)[bot] in [netty/netty#16572](https://redirect.github.com/netty/netty/pull/16572) > * Revert to PR build to Ubuntu 22.04 by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16595](https://redirect.github.com/netty/netty/pull/16595) > * Native transports: Correctly create pipe when pipe2 is not supported by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16592](https://redirect.github.com/netty/netty/pull/16592) > * Epoll: Cleanup code to always return negative value on failure by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16591](https://redirect.github.com/netty/netty/pull/16591) > * Fix component search fast path by [`@yawkat`](https://github.com/yawkat) in [netty/netty#16548](https://redirect.github.com/netty/netty/pull/16548) > * Stabilize read-only toStringMultipleThreads1 by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16608](https://redirect.github.com/netty/netty/pull/16608) > * Stabilize more AbstractByteBufTests by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16611](https://redirect.github.com/netty/netty/pull/16611) > * Remove note about needing 256-bit for PQC by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16605](https://redirect.github.com/netty/netty/pull/16605) > * Stabilize testSessionInvalidate for Conscrypt by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16615](https://redirect.github.com/netty/netty/pull/16615) > * Quic: Correctly handle SSL\_CTX\_new failures by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16622](https://redirect.github.com/netty/netty/pull/16622) > * Make LocalIoHandle public by [`@rdicroce`](https://github.com/rdicroce) in [netty/netty#16621](https://redirect.github.com/netty/netty/pull/16621) > * Quic: Fix shadowing of variable which leads to incorrectly handling errors by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16623](https://redirect.github.com/netty/netty/pull/16623) > * Auto-port 4.2: Use stream error for maxContentLength exceeded in InboundHttp2ToHttpAdapter by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16629](https://redirect.github.com/netty/netty/pull/16629) > * Fix `shutdownInput` bug in kqueue for empty recv buffer by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16630](https://redirect.github.com/netty/netty/pull/16630) > * fix FFM address semantics in directBufferAddress by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#16603](https://redirect.github.com/netty/netty/pull/16603) > * HTTP2: Ensure HTTP2 preface is always send as first message by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16636](https://redirect.github.com/netty/netty/pull/16636) > * Move Http2FrameCodecSubClassTest to correct package by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16640](https://redirect.github.com/netty/netty/pull/16640) > * Kqueue: Fix usage of LOCAL\_PEERPID by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16637](https://redirect.github.com/netty/netty/pull/16637) > * Avoid ArrayQueue allocation in HttpServerCodec by [`@doom369`](https://github.com/doom369) in [netty/netty#16596](https://redirect.github.com/netty/netty/pull/16596) > * Fix file descriptor reuse bug in kqueue by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16650](https://redirect.github.com/netty/netty/pull/16650) ... (truncated) Commits * [`b3844c8`](netty/netty@b3844c8) [maven-release-plugin] prepare release netty-4.2.13.Final * [`82f47fa`](netty/netty@82f47fa) Merge commit from fork * [`ada0999`](netty/netty@ada0999) Merge commit from fork * [`b4051e2`](netty/netty@b4051e2) Fix BrotliDecoder not forwarding all decompressed chunks * [`67207c1`](netty/netty@67207c1) Merge commit from fork * [`541ca7c`](netty/netty@541ca7c) Merge commit from fork * [`943edb3`](netty/netty@943edb3) Fix codec-dns tests * [`6459a28`](netty/netty@6459a28) Merge commit from fork * [`b4ba61b`](netty/netty@b4ba61b) Fix checkstyle in HttpObjectDecoder * [`977661f`](netty/netty@977661f) Merge commit from fork * Additional commits viewable in [compare view](netty/netty@netty-4.2.12.Final...netty-4.2.13.Final) Updates `io.netty:netty-handler` from 4.2.12.Final to 4.2.13.Final Release notes *Sourced from [io.netty:netty-handler's releases](https://github.com/netty/netty/releases).* > netty-4.2.13.Final > ------------------ > > CVEs Fixed > ---------- > > * [CVE-2026-42586](GHSA-rgrr-p7gp-5xj7) (netty-codec-redis) > * [CVE-2026-42578](GHSA-45q3-82m4-75jr) (netty-handler-proxy) > * [CVE-2026-42577](GHSA-rwm7-x88c-3g2p) (netty-transport-native-epoll) > * [CVE-2026-42587](GHSA-f6hv-jmp6-3vwv) (netty-codec-http, netty-codec-http2) > * [CVE-2026-41417](GHSA-v8h7-rr48-vmmv) (netty-codec-http) > * [CVE-2026-42581](GHSA-xxqh-mfjm-7mv9) (netty-codec-http) > * [CVE-2026-42580](GHSA-m4cv-j2px-7723) (netty-codec-http) > * [CVE-2026-42585](GHSA-38f8-5428-x5cv) (netty-codec-http) > * [CVE-2026-42579](GHSA-cm33-6792-r9fm) (netty-codec-dns) > * [CVE-2026-42582](GHSA-2c5c-chwr-9hqw) (netty-codec-http3) > * [CVE-2026-42583](GHSA-mj4r-2hfc-f8p6) (netty-codec, netty-codec-compression) > * [CVE-2026-42584](GHSA-57rv-r2g8-2cj3) (netty-codec-http) > * [CVE-2026-44248](GHSA-jfg9-48mv-9qgx) (netty-codec-mqtt) > > What's Changed > -------------- > > * Kqueue: sendfile EINTR doesn't advance offset — data duplication by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16544](https://redirect.github.com/netty/netty/pull/16544) > * Replace usage of strerror with thread-safe alternative by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16547](https://redirect.github.com/netty/netty/pull/16547) > * Fix implementation of strerror\_r\_xsi for GNU by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16546](https://redirect.github.com/netty/netty/pull/16546) > * Lazy init ArrayList in DefaultHeaders.getAll by [`@doom369`](https://github.com/doom369) in [netty/netty#16526](https://redirect.github.com/netty/netty/pull/16526) > * Less logging in AWS-LC build by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16565](https://redirect.github.com/netty/netty/pull/16565) > * Ensure the CRYPTO\_BUFFER\_POOL is also freed when we fail creating the SSLContext by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16545](https://redirect.github.com/netty/netty/pull/16545) > * Auto-port 4.2: Fix IndexOutOfBoundsException in StompSubframeDecoder on heartbeat by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16543](https://redirect.github.com/netty/netty/pull/16543) > * Avoid leak in PemReader on OutOfDirectMemoryError by [`@raipc`](https://github.com/raipc) in [netty/netty#16551](https://redirect.github.com/netty/netty/pull/16551) > * IoUring: Disable test while we debug to unblock other builds by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16581](https://redirect.github.com/netty/netty/pull/16581) > * Include user properties and subscription IDs in MqttProperties#isEmpty by [`@ShadowySpirits`](https://github.com/ShadowySpirits) in [netty/netty#16575](https://redirect.github.com/netty/netty/pull/16575) > * Native DNS resolver: Guard against malloc failures by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16559](https://redirect.github.com/netty/netty/pull/16559) > * Auto-port 4.2: Increase timeouts for QuicChannelConnectTest by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16578](https://redirect.github.com/netty/netty/pull/16578) > * Fix parsing HTTP chunks with multiple extensions by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16579](https://redirect.github.com/netty/netty/pull/16579) > * Bump org.codehaus.plexus:plexus-utils from 3.4.2 to 4.0.3 in /codec-native-quic by [`@dependabot`](https://github.com/dependabot)[bot] in [netty/netty#16572](https://redirect.github.com/netty/netty/pull/16572) > * Revert to PR build to Ubuntu 22.04 by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16595](https://redirect.github.com/netty/netty/pull/16595) > * Native transports: Correctly create pipe when pipe2 is not supported by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16592](https://redirect.github.com/netty/netty/pull/16592) > * Epoll: Cleanup code to always return negative value on failure by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16591](https://redirect.github.com/netty/netty/pull/16591) > * Fix component search fast path by [`@yawkat`](https://github.com/yawkat) in [netty/netty#16548](https://redirect.github.com/netty/netty/pull/16548) > * Stabilize read-only toStringMultipleThreads1 by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16608](https://redirect.github.com/netty/netty/pull/16608) > * Stabilize more AbstractByteBufTests by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16611](https://redirect.github.com/netty/netty/pull/16611) > * Remove note about needing 256-bit for PQC by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16605](https://redirect.github.com/netty/netty/pull/16605) > * Stabilize testSessionInvalidate for Conscrypt by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16615](https://redirect.github.com/netty/netty/pull/16615) > * Quic: Correctly handle SSL\_CTX\_new failures by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16622](https://redirect.github.com/netty/netty/pull/16622) > * Make LocalIoHandle public by [`@rdicroce`](https://github.com/rdicroce) in [netty/netty#16621](https://redirect.github.com/netty/netty/pull/16621) > * Quic: Fix shadowing of variable which leads to incorrectly handling errors by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16623](https://redirect.github.com/netty/netty/pull/16623) > * Auto-port 4.2: Use stream error for maxContentLength exceeded in InboundHttp2ToHttpAdapter by [`@netty-project-bot`](https://github.com/netty-project-bot) in [netty/netty#16629](https://redirect.github.com/netty/netty/pull/16629) > * Fix `shutdownInput` bug in kqueue for empty recv buffer by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16630](https://redirect.github.com/netty/netty/pull/16630) > * fix FFM address semantics in directBufferAddress by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#16603](https://redirect.github.com/netty/netty/pull/16603) > * HTTP2: Ensure HTTP2 preface is always send as first message by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16636](https://redirect.github.com/netty/netty/pull/16636) > * Move Http2FrameCodecSubClassTest to correct package by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16640](https://redirect.github.com/netty/netty/pull/16640) > * Kqueue: Fix usage of LOCAL\_PEERPID by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16637](https://redirect.github.com/netty/netty/pull/16637) > * Avoid ArrayQueue allocation in HttpServerCodec by [`@doom369`](https://github.com/doom369) in [netty/netty#16596](https://redirect.github.com/netty/netty/pull/16596) > * Fix file descriptor reuse bug in kqueue by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#16650](https://redirect.github.com/netty/netty/pull/16650) ... (truncated) Commits * [`b3844c8`](netty/netty@b3844c8) [maven-release-plugin] prepare release netty-4.2.13.Final * [`82f47fa`](netty/netty@82f47fa) Merge commit from fork * [`ada0999`](netty/netty@ada0999) Merge commit from fork * [`b4051e2`](netty/netty@b4051e2) Fix BrotliDecoder not forwarding all decompressed chunks * [`67207c1`](netty/netty@67207c1) Merge commit from fork * [`541ca7c`](netty/netty@541ca7c) Merge commit from fork * [`943edb3`](netty/netty@943edb3) Fix codec-dns tests * [`6459a28`](netty/netty@6459a28) Merge commit from fork * [`b4ba61b`](netty/netty@b4ba61b) Fix checkstyle in HttpObjectDecoder * [`977661f`](netty/netty@977661f) Merge commit from fork * Additional commits viewable in [compare view](netty/netty@netty-4.2.12.Final...netty-4.2.13.Final) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- Dependabot commands and options You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Motivation:
HttpServerCodecalways allocates anArrayDeque. However, the code inside needs only 2 actual headers: HEAD, CONNECT. So we can pack that as 2 bits within long field, to avoidArrayDequeallocation + fallback forArrayDeque, which is unlikely to happen with typical workloads.Modification:
Introduce
long methodQueue, which we use as a queue to pack 2 bits for every incoming request + fallback toArrayQueue, whenlong methodQueueis overflowed.Result:
No more
ArrayQueueallocation when a new pipeline is built withHttpServerCodec.P. S. It complicates code and maintenance, so feel free to close if you think it's not worth it. As it's easy to introduce our own fixed version.