Netty 4.2.0.RC4 released
We are happy to announce the release of the third release candidate for the upcoming netty version 4.2.0. Everyone using netty 4.1.x should be able to upgrade to 4.2.0.RC4 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 candidate 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: Support for IORING_SETUP_CQSIZE (#14793)
- Remove pkitesting from netty-all (#14798)
- IoUring: Use buffer ring for all reads when configured. (#14804)
- IoUring: Add code to support multishot in general and use ACCEPT_MULTISHOT (#14807)
- IoUring: Add support for IORING_RECV_MULTISHOT (#14818)
- IoUring: Fix IoBufferRing implementation (#14827)
- Fix NPE when upgrade message fails to aggregate (#14831)
- Bump BlockHound version to 1.0.11.RELEASE (#14834)
- SslHandler: Fix possible NPE when executor is used for delegating (#14833)
- IoUring: Fix rearm logic (#14836)
- IoUring: Refill buffer ring more eagerly (#14842)
- Convenient API for specifying SNI hostname (#14849)
- IoUring: Use IORING_POLL_ADD_MULTI when possible (#14845)
- Add QueryStringDecoder option to leave '+' alone (#14857)
- IoUring: Correctly handle pollIn notifications if there is no read pending (#14859)
- IoUring: Select buffer ring once (#14858)
- IoUring: Correctly cancel pollin and read when ChannelConfig.setAutoRead(false) (#14860)
- Use initialized BouncyCastle providers when available (#14862)
- IoUring: Retry buffer ring based ready directly once we receive a ENOBUFS (#14866)
- IoUring: Add support for recv bundles (#14840)
- IoUring: Correctly retrieves the cqe capacity (#14871)
- Fix flawed termination condition check in HttpPostRequestEncoder (#14870)
- IoUring: Guard against corrupted state when we fail to allocate for the buffer ring (#14869)
- IoUring: Correctly drain all IO events before shutdown the EventLoop and so not accepted any more tasks to be scheduled. (#14877)
- IoUring: Guard against reading to fast when using a buffer ring (#14873)
- Allow to specify parent IoEventLoopGroup when constructing ManualIoEventLoop (#14889)
- IoUring: Fix IoUringBufferRing (#14890)
- ThreadExecutorMap.currentExecutor() should work when using a ManualIoEventLoop (#14888)
- IoUring: Optimize CompletionBuffer.processOneNow(...) (#14894)
- Exposed decoderEnforceMaxConsecutiveEmptyDataFrames and decoderEnforceMaxRstFramesPerWindow for 4.2 (#14897)
- IoUring: Correctly calculate ioPrio / recvFlags when using multishot recv (#14896)
- ThreadExecutorMap must restore old EventExecutor (#14895)
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.
- @bryce-anderson
- @chrisvest
- @dreamlike-ocean
- @franz1981
- @He-Pin
- @isaacrivriv
- @LinShunKang
- @normanmaurer
- @violetagg
- @yawkat
Beside this we also would like to thank everyone who took the time to test 4.2.0.* so far.