Skip navigation

Netty 4.2.0.RC2 released

We are happy to announce the release of the second release canidate for the upcoming netty version 4.2.0. Everyone using netty 4.1.x should be able to upgrade to 4.2.0.Alpha4 without any API breakage. The only new requirement is JDK8 or later.

We encourage users of netty 4.1.x to try out this alpha release and so provide feedback if any breakage is noticed. This will help us to be aware of any problems early in the release cycle. That said, be aware that this is only an release canidate and so shouldn't be considered for production usage yet.

Netty 4.2.0 will come with some exciting new features that you can learn more about in the announcement of netty 4.2.0.Alpha1.

The most important changes in this release are:

  • IoUring: IoUringRegistration.cancel() didn't remove registration when called only once (#14536)
  • IoUring: Use IORING_RECVSEND_POLL_FIRST when we are sure there is no more data on the socket (#14552)
  • Spdy: Add UnknownFrame parsing support for SpdyFrameCodec (#14561)
  • Adaptive: Correctly restore allocatedBytes value on failure (#14577)
  • Add BlockHound exceptions for AdaptivePoolingAllocator (#14564)
  • Adapt: Only add Chunk to central Queue if unused (#14580)
  • Adapt: Don't fail when we run on a host with 1 core (#14582)
  • Timer: Add callback users can override to cleanup on cancellation (#14571)
  • Adapt: Ensure Chunks from the central Queue are re-used even if there are Magazine local cached Chunks (#14581)
  • Allow PcapWriteHandler to output PCAP files larger than 2GB (#14587)
  • IoUring: Allow to configure if POLLIN should be used or not (#14605)
  • Limit the task run per EventLoop tick via a timeout (#14557)
  • IoUring: Make use of IORING_CQE_F_SOCK_NONEMPTY and IORING_ACCEPT_DONT_WAIT (#14610)
  • IoUring: Also make use of IORING_RECVSEND_POLL_FIRST for accept (#14617)
  • Support BouncyCastle FIPS for reading PEM files (#14620)
  • Fix classloader leaks in GlobalEventExecutor (#14622)
  • Dns: Correctly encode DnsPtrRecord (#14630)
  • FWD: Make DefaultResourceLeak more resilient against OOM (#14638)
  • SslHandler: Ensure buffers are never leaked when wrap(...) produce SSLException (#14651)
  • Provides Brotli settings without com.aayushatharva.brotli4j dependency (#14655)
  • OpenSslSession: Add support to defensively check for peer certs (#14653)
  • Adaptive: Only use ThreadLocal if called from FastThreadLocalThread in case of temporary byte[] allocation (#14625)
  • Correctly handle comments appended to nameserver declarations (#14663)
  • IoUring: Add IoUringChannelOption.IOSQE_ASYNC (#14633)
  • IoUring: Release IovArray on submit failure (#14667)
  • IoUring: Correctly handle submission failures when using MsgHdrMemoryArray (#14666)
  • Revert "IoUring: Remove delayed close logic as its not needed (#14665)
  • IoUring: Keep on reading data until nothing is left to read on a socket (#14668)
  • IoUring: Log submission failures via tracing level as these are expected (#14671)
  • IoUring: Use IORING_ACCEPT_POLL_FIRST instead of IORING_RECVSEND_POLL_FIRST (#14669)
  • IoUring: Add support for IORING_REGISTER_IOWQ_MAX_WORKERS (#14650)
  • IoUring: Correctly handle IORING_CQE_F_SOCK_NONEMPTY for accepts (#14682)
  • IoUring: Only use IORING_ACCEPT_POLL_FIRST and IORING_ACCEPT_DONTWAIT if supported by kernel (#14680)
  • IoUring: Check if IORING_RECVSEND_POLL_FIRST is supported before using it (#14683)
  • IoUring: Force submit and instantly running completions when Channel becomes unwritable (#14693)
  • IoUring: Submit after completion queue was processed (#14696)

For all the changes please vision our issue-tracker.

Thank You

Every idea and bug-report counts, and so we thought it is worth mentioning those who helped in this area.

Please report an unintended omission.

Beside this we also would like to thank everyone who took the time to test 4.2.0.* so far.