Netty 4.1.30.Final released
Today we announce the release of netty 4.1.30.Final. This release contains bugfixes, some improvements and a huge performance gain when doing
ByteBuf operations. Beside this we tested this release on Java8, 9, 10, 11 and 12 EA.
The most important changes are:
- Add cache for CNAME mappings resolved during lookup of DNS entries. (#8314)
- Ensure ByteToMessageDecoder.Cumulator implementations always release. (#8325)
- Fixed illegal reflective access by not relying on a sun.net.dns class. (#8319)
- Don't re-arm timerfd each epoll_wait (#7816)
- Allow to configure socket option SO_BUSY_POLL (#8268)
- Use a non-volatile read for ensureAccessible() whenever possible to reduce overhead and allow better inlining. (#8266)
- Correctly reset offset when fail lazy because of too long frame (#8257)
- Do not fail on runtime when an older version of Log4J2 is on the classpath (#8240)
- TCN is failing with error:14179044:SSL routines:tls_construct_server_key_exchange:internal error (#8165)
- Fix race condition in the NonStickyEventExecutorGroup (#8232)
- Allow to use native transports when sun.misc.Unsafe is not present (#8231)
- CleanerJava9 should be able to do its job even with a SecurityManager installed (#8204)
For the details and all changes, please browse our issue tracker for 4.1.30.Final.
ByteBuf performance improvements
By relaxing the access mode for reference checks during operations in (#8266) we were able to see a 25 % performance win when doing chained operations on the
ByteBuf. The gains may even be higher depending on how many operations you perform in your application in the same method body.
To furthermore improve lookup times we added a new
DnsCnameCache to the
DnsNameResolver in (#8314). This will allow to not only cache the "end results" but also the
CNAME records in between.
Java9 and later
We did various more improvements to ensure Netty can be used without any warning on Java9 and later. If you see any more "illegal access" warning please let us know so we can fix these.
Our CI runs netty builds on Java8, 9, 10, 11 and 12EA now.
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.