Netty 4.2.0.RC3 released
We are happy to announce the release of the third 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.RC3 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: try to enable IORING_SETUP_SUBMIT_ALL when supported by the running system (#14677)
- IoUring: Create ring with IORING_SETUP_SINGLE_ISSUER and IORING_SETUP_DEFER_TASKRUN to reduce overhead (#14699)
- IoUring: Only execute write related completion inline (#14704)
- IoUring: Fix SubmissionQueue.addTimeout(...) and SubmissionQueue.addLinkTimeout(...) (#14712)
- IoHandler: Introduce IoExecutor and pass it to IoHandlerFactory.newHandler(...) (#14701)
- IoUring: Use IORING_REGISTER_RING_FDS when possible (#14709)
- IoUring: Log what features are supported (#14719)
- IoUring: Correctly handle submissions if the kernel does not support IORING_SETUP_SUBMIT_ALL (#14718)
- IoUring: Rename IoUringIoHandlerConfiguration to IoUringIoHandlerConfig (#14726)
- Add a property to control default endpoint verification (#14731)
- Allocate bytebuf without magazine lock when threads get collisions (#14729)
- Upgrade protobuf 3.16.3 -> 3.25.5 (#14736)
- Make StreamBufferingEncoder not send header frame with priority by default (#14735)
- IOUring: Add supported for provided buffers (#14690)
- Notify event loop termination future of unexpected exceptions (#14737)
- IoRegistration: Remove usage of Future from external API and allow for wrapping (#14744)
- Rename IoExecutor to ThreadAwareExecutor and move to concurrent package (#14747)
- Add support for generating ML-DSA certs with CertificateBuilder (#14741)
- Fix AccessControlException in GlobalEventExecutor (#14754)
- Fix possible buffer leak when stream can't be mapped (#14755)
- Preserve optionality of dependencies in netty-all (#14751)
- IoEventLoop*: Move default methods to IoEventLoopGroup (#14764)
- Remove IoUringChannelOption.IOSQE_ASYNC (#14765)
- Remove IoUringChannelOption.POLL_FIRST (#14763)
- IoUring: Handle read errors because of no space in the buffer ring as no op (#14767)
- IoUring: Use IORING_RECVSEND_POLL_FIRST even when using buffer ring. (#14766)
- Revert new constructor of DefaultPromise (#14771)
- IoUring: IoUringBufferRing group ids should allow value of 0 (#14776)
- Reduce pipeline stack depth and improve performance (#14705)
- Introduce ManualIoEventLoop that allows the user to keep control over the EventLoop processing (#14749)
- IoUring: Add support for Incremental provided buffer consumption (#14783)
- AdaptivePoolingAllocator: Round chunk sizes up to MIN_CHUNK_SIZE units and reduce chunk release frequency (#14781)
- IoUring: Make buffer ring selection more flexible (#14786)
- IoUring: Improve our implementation of the IoUringBufferRing (#14788)
- IoUring: Lazy fill IoBufferRing (#14789)
- Upgrade netty-tcnative to 2.0.70.Final (#14792)
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.