[ 
https://issues.apache.org/jira/browse/CASSANDRA-14633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16575743#comment-16575743
 ] 

Dinesh Joshi commented on CASSANDRA-14633:
------------------------------------------

+1

I scanned through the release notes for Netty between version 4.1.15 -> 4.1.28 
and I did not see anything obvious that would break us. For posterity'sĀ sake, I 
am pasting the release notes in reverse chronological order as an easy 
referenceĀ -
{noformat}
Netty 4.1.28.Final released

Today we announce the release of netty 4.1.28.Final. This release contains 
bugfixes and add support to use any supported SocketOption by the JDK. Please 
upgrade once you have the chance.

The most important changes are:

Support the usage of SocketOption when nio is used and the java version >= 7 
(#8085)
Leak detection combined with composite buffers results in incorrectly handled 
writerIndex when calling ByteBufUtil.writeAscii/writeUtf8 (#8153)
Allow to validate sni hostname with underscore (#8150)
HTTP/2 child channel read cycle doesn't respect RecvByteBufAllocator and may 
drop data if stream closed while auto read is off (#8147)

Netty 4.1.27.Final released

Due some possible regression that could cause an NPE during selecting the 
keymaterial if the alias is not known when using OpenSSL (and so signal back 
the wrong alert to the remote peer) we decided to cut another netty releases. 
While it was possible to "work around" this regression by using a 
KeyManagerFactory to configure SslContextBuilder we thought this deserves a 
fast release.

Beside fixing the above mentioned bug we also fixes a few other small things.

Netty 4.1.26.Final released

I'm happy to announce the latest release of the 4.1 series after almost 2 month 
of hard work.

These release contains bug-fixes, performance enhancements and feature so we 
encourage everyone to upgrade.

The most important changes are:

Add OpenSslX509KeyManagerFactory which makes it even easier for people get the 
maximum performance when using OpenSSL / LibreSSL / BoringSSL with netty (#8084)
Do not log explicit no unsafe, fixes helper method (#8111)
Fix support for shading native libraries which was broken (#8091)
Remove usage of ObjectCleaner (#8064)
Reorder channel state changes in Http2MultiplexCodec child channel (#8070)
Remove id from DnsQueryContextManager whenever the promise is fullfilled (#8058)
HpackDecoder treats invalid pseudo-headers as stream level errors (#8046)
Allow to cache keymaterial when using OpenSSL (#8036)
Epoll and Kqueue shouldn't read by default (#8024)
Defer channelInactive and channelUnregistered events in Http2MultiplexCodec 
(#8021)
Provide an API for controlling and h2c upgrade response stream in 
Http2MultiplexCodec (#7968)
Fix CharSequenceValueConverter.convertToByte implementation for AsciiString 
(#7994)
Set (and override) websocket handshake headers after custom headers (#7975)
Allow to schedule tasks up to Long.MAX_VALUE (#7972)
Correctly let Http2UnkownFrame extend HttpStreamFrame (#7976)
Read until all data is consumed when EOF is detected (#7961)
Propagate pong frames in WebSocketProtocolHandler (#7955)
Remove HpackDecoder.maxHeaderListSizeGoAway (#7911)
Guard against calling malloc(0) when create ByteBuffer (#7948)
Correctly clear the error stack in all cases when using 
ReferenceCountedOpenSslEngine (#7941)
Correctly copy existing elements when CodecOutputList.add(index, element) is 
used (#7931)


Netty 4.1.25.Final released

I'm happy to announce the latest release of the 4.1 series.

These releases contains bug-fixes, performance enhancements and feature so we 
encourage everyone to upgrade.

The most important changes are:

Always follow cnames even if a matching A or AAAA record was found. (#7919)
DefaultDnsCache should store more then one Entry per hostname. (#7906)
Allow to disable native transport and native ssl support via system property. 
(#7903)
Add null-check to Htt2FrameCodec#consumeBytes. (#7899)
Fix IllegalReferenceCountException when using Http2MultiplexCodec and a 
DefaultHttp2GoAwayFrame with a non empty ByteBuffer is received. (#7894)
Correctly handle responses with status 205 and payload. (#7891)
Respect MAX_MESSAGES_PER_READ in LocalChannel / LocalServerChannel. (#7885)
Implement isWritable and ensureWritable on ReadOnlyByteBufferBuf. (#7883)
Update DatagramPacket.recipient() to return the actual destination IP. (#7879)
Set the correct stream header state for h2c upgrades. (#7848)

Netty 4.1.24.Final released

These releases contains bug-fixes, performance enhancements and feature so we 
encourage everyone to upgrade. Importantly it also fixes a regression of 
4.1.23.Final which could lead to have resources not cleaned up correctly in 
some cases.

The most important changes are:

Fix eternal loop in Recycler.WeakOrderQueue.Head#run() that blocks 
ObjectCleaner thread (#7878)
Filter DNS results so they only contain the expected type when multiple types 
are present (#7875)
Only reset readIsPending if outboundBuffer is not empty (#7874)
AsciiString#indexOf out of bounds (#7866)
For the details and all changes, please browse our issue tracker for 
4.1.24.Final.


Netty 4.1.23.Final released

These releases contains bug-fixes, performance enhancements and feature so we 
encourage everyone to upgrade.

The most important changes are:

SctpMessageCompletionHandler may leak ByteBuf for fragmented messages (#7832)
Don't replace all connection headers when sending h2c upgrade request (#7824)
ChunkedWriteHandler: avoid writing two times the same message (#7822)
Limit the number of bytes to use to copy the content of a direct buffer to 
OutputStream (#7813)
NIO read spin event loop spin when half closed (#7801)
HttpServerUpgradeHandler shouldn't wait for flush to reshape pipeline (#7807)
Support Redis inline commands (#7687)
Ensure we not schedule multiple timeouts for close notify (#7799)
HttpProxyHandler generates invalid CONNECT url and Host header when address is 
resolved (#7784)
Correctly handle non IOException during read in NioServerSocketChannel (#7806)
Correctly record creation stacktrace in ResourceLeakDetector. (#7782)
PendingWriteQueue to handle write operations with void future (#7780)
IovArray.add(...) should check if buffer has memory address (#7774)
FixedCompositeByteBuf should allow to access memoryAddress / array when wrap a 
single buffer (#7773)
Close SSLEngine when connection fails. (#7746)
Workaround SSLEngine.unwrap(...) bug in Android 5.0 (#7761)
Flush task should not flush messages that were written since last flush attempt 
(#7743)
Copies from read-only heap ByteBuffer to direct ByteBuf can avoid stealth 
ByteBuf allocation and additional copies (#7739)


Netty 4.1.22.Final released

These releases contains bug-fixes, performance enhancements and feature so we 
encourage everyone to upgrade.

The most important changes are:

To detect Android, check the VM property rather than the classpath (#7679)
Propagate full Unsafe unavailability reason in PlatformDependent (#7684)
Use long for http2 ping payload (#7690)
Introduce an alternative IdentityCipherSuiteFilter that defaults to 
supportedCiphers (#7691)
Reduce the default number of objects retained by the Recycler per thread (#7701)
Bump Conscrypt version to 1.0.0 (#7703)
ByteBufUtil to not pool direct memory by default (#7704)
NioDatagramChannel invalid usage of internalNioBuffer (#7705)
Http2MultiplexCodec now propagates SETTINGS and GOAWAY frames in pipeline 
(#7711)
Correctly handle the case when converting of value fails and return null or 
default value (#7715)
DefaultHeaders / CharSequenceValueConverter should treat boolean consistently 
(#7720)
Get memory address from Unsafe for OpenSSL (#7725)
SSL connection not closed properly after handshake failure (#7727)
Epoll flush/writabilityChange deadlock (#7730)
Fix Snappy decoding of large 2-byte literal lengths and copy offsets (#7731)
Ensure we always release the AddressEnvelope when doing DNS queries. (#7734)

The most important changes for 4.0.56.Final and 4.1.21.Final are:

DefaultChannelPipeline will not invoke handler if events are fired from 
handlerAdded (#7606)
ObjectCleanerThread must be a deamon thread to ensure the JVM can always 
terminate (#7627)
Reflective setAccessible(true) will produce scary warnings on the console when 
using java9+ (#7650)
SslHandler unwrap out of order promise/event notification (#7667)
JdkSslContext supported cipher suites incorrect (#7677)
ReadOnlyUnsafeDirectByteBuf.memoryAddress() should not throw (#7678)
The most important changes for 4.1.21.Final only are:

Http2FrameCodec WindowUpdate bug (#7604)
Fix race-condition when using DnsCache in DnsNameResolve (#7587)
Reduce overhead of cancel flowcontrolled writes. (#7608)
Http2MultiplexCodec should propagate unhandled Http2Frames down the pipeline 
(#7612)
Do not fire outbound exception through the pipeline when using Http2FrameCodec 
/ Http2MultiplexCodec (#7618)
Http2MultiplexCodec.DefaultHttpStreamChannel.isOpen() / isActive() should be 
false when fireChannelActive() is called (#7640)
Correctly handle multiple calls to DefaultHttp2StreamChannel.Unsafe.close(...) 
(#7631)
Convert Http2Error.STREAM_CLOSED to ClosedChannelException when using child 
channels (#7610)
DefaultDnsCache should expire all records per hostname when one TTL is reached 
(#7656)
DnsNameResolverContext#followCname only uses first name server (#7671)
DnsNameResovlerContext#followCname sending extra queries (#7681)
Avoid register multiple cleaner task for same thread's FastThreadLocal index 
(#7676)


The most important changes for 4.0.55.Final and 4.1.20.Final are:

ByteBuf.toString(Charset) is not thread-safe (#7600)
ObjectCleaner should continue cleaning despite exceptions (#7598)
ObjectCleaner may indefinitely block on ReferenceQueue#poll (#7597)
Handling concatenated GZIP streams (#7577)
Correctly take position into account when wrap a ByteBuffer via 
ReadOnlyUnsafeDirectByteBuf (#7580)
Remove remote initiated renegotiation support (#7558)
Remove direct usage of JKS and SunX509 (#7547)
OpenSslEngine: Remove renegotiation support (#7544)
Ensure ThreadDeathWatcher and GlobalEventExecutor will not cause classloader 
leaks (#7493)
The most important changes for 4.1.20.Final only are:

Fix concurrency issue in DnsNameResolver when DefaultDnsCache is used. defect 
(#7584)
HTTP/2 Remove Http2FrameStream#CONNECTION_STREAM (#7575)
IovArray#add return value resulted in more ByteBufs being added during 
iteration (#7563)
Add 32 bytes overhead per header entry when calculating headers length in 
HPackDecoder (#7531)
HTTP/2 support pending data larger than Integer.MAX_VALUE (#7523)
Add h2spec test suite module to check if netty http2 implementation conforms 
with the specification (#7504)
Ability to scoop up events that reach the tail of the ChannelPipeline (#7494)

The most important changes for 4.1.19.Final are:

Unfortunately just a week after we released netty 4.1.18.Final we found a 
regression which could cause a core-dump when using one of the native 
transports and trying to write a CompositeByteBuf. To fix this regression we 
just released netty 4.1.19.Final . If you use 4.1.18.Final and one of the 
native transports we highly recommend upgrading to this new release to ensure 
you not see any core-dumps.

This regression only exists on the 4.1 release series and NOT on the 4.0 
series, which means a new 4.0 release was not needed.

For more details on the problem please read:

FileDescriptor writev core dump (#7507)
Beside this regression-fix we also fixed 2 other issues, one of the changes 
fixes a bug which made it impossible to use native transports of netty as java9 
modules.

The most important changes for 4.0.54.Final and 4.1.18.Final are:

Ensure we not try to call select when the AbstractSniHandler was already 
removed from the pipeline (#7475)
Not call java methods from within JNI init code to prevent class loading 
deadlocks (#7480)
Fixed default OpenSsl cipher suites (#7450)
Dont use ThreadDeathWatcher to cleanup PoolThreadCache if FastThreadLocalThread 
with wrapped Runnable is used (#7445)
Correctly propagate channelInactive even if cleanup throws (#7415)
Fix writing of empty LastHttpContent with trailers (#7420)
AbstractByteBuf readSlice bound check bug (#7416)
Dont fire an SslHandshakeEvent if the handshake was not started at all (#7368)
Correctly handle 205 Reset Content response with transfer-encoding (#7397)
CompositeBytebuf.copy() and copy(...) should respect the allocator (#7395)
The most important changes for 4.1.18.Final only are:

H2C upgrades should be ineligible for flow control (#7400)
Enforce writeSpinCount to limit resource consumption per socket (#7478)
Add SniCompletionEvent which allows to easily retrieve the hostname that was 
used to select the SslContext (#7444)
SslHandler aggregation prefer copy over CompositeByteBuf (#7468)
AdaptiveRecvByteBufAllocator should ramp up while reading (#7466)
Http2ConnectionHandler Http2ConnectionPrefaceAndSettingsFrameWrittenEvent 
propagation (#7460)
EDNS Client Subnet is not encoded correctly when source prefix length is not a 
multiple of 8 (#7457)
Allow to detect failed query caused by an Timeout / IO error and also not cache 
these (#7411)
DefaultHttpHeader.names().toArray(...) may throw ArrayStoreException (#7429)
HttpConversionUtil TE filtering robustness (#7422)
Fix DN resolution when ndots is greater than 1 (#7414)
codec-http2: Improve h1 to h2 header conversion (#7399)
EpollSocketChannelConfig.getOptions() must not throw if TCP_FASTOPEN_CONNECT is 
not supported (#7407)
Don't try to use UnixResolverDnsServerAddressStreamProvider when on Windows 
(#7403)
Use Netty's DefaultPriorityQueue instead of JDK's PriorityQueue for scheduled 
tasks (#7384)

The most important changes for 4.0.53.Final and 4.1.17.Final are:

OpenSslEngine support unwrap plaintext greater than 214 and avoid infinite loop 
(#7352)
java.lang.NullPointerException: ssl at 
ReferenceCountedOpenSslEngine.rejectRemoteInitiatedRenegotiation (#7353)
Don't disable HttpObjectDecoder on upgrade from HTTP/1.x to HTTP/1.x over TLS 
(#7298)
Support running Netty (in particular netty-tcnative) in the bootstrap class 
loader (#7345)
SslHandler.setHandshakeTimeout*(...) should also been enforced on the server 
(#7277)
ResourceLeakDetector sampling changes (#7232)
Do not treat errors as decoder exception (redux) (#7279)
Do not treat errors as decoder exception (#7276)
Propagate all exceptions when loading native code (#7250)
Optimistically update ref counts (#7248)
Fix Java9SslEngine implementation of ApplicationProtocolAccessor and so fix 
ApplicationProtocolNegationHandler (#7258)
Upgrade Conscrypt to 1.0.0.RC11 (#7235)
The most important changes for 4.1.17.Final only are:

Add TCP_FASTOPEN_CONNECT epoll option (#7348)
HTTP/2 Child Channel reading and flushing (#7344)
Http2StreamFrameToHttpObjectCodec should handle 100-Continue properly (#7334)
Fix possible leak in SslHandler if wrap(...) throws. (#7338)
Trigger user event when H2 conn preface & SETTINGS frame is sent (#7330)
Correctly update Channel writability when queueing data in SslHandler. (#7278)
DnsResolver CNAME redirect bug (#7291)
SslHandler promise completion incorrect if write doesn't immediately (#7380)

The most important changes for 4.0.52.Final and 4.1.16.Final are:

Correctly not write any body when 1xx, 204 or 304 is used as response status 
code (#7209)
Fix assertion error when closing / shutdown native channel and SO_LINGER is set 
(#7225)
Reduce performance overhead of ResourceLeakDetector (#7217)
fix Log4J2Logger-FQCN in PatternLayout (%F:%L)%c.%M (#7185)
Enable PooledByteBufAllocator to work, even without a cache (#7195)
Only load native transport if running architecture match the compiled (#7163)
HttpObjectEncoder buffer size estimation (#7161)
AutoClose behavior may infinite loop (#7153)
The most important changes for 4.1.16.Final only are:

Adapt Http2ServerDowngrader to work with clients (#7233)
Match Http2ClientUpgradeCodec to the new upgrade policy (#7227)
Fix NPE in InboundHttp2ToHttpAdapter (#7215)
Check on wrong CONNECT packet with password but without username (#7206)
Correctly update writability state of Http2StreamChannel created by 
Http2MultiplexCodec (#7181)
Fix NPE when using Http2ServerUpgradeCodec with Http2FrameCodec and 
Http2MultiplexCodec (#7184)
Not add inboundStreamHandler for outbound streams created by 
Http2MultiplexCodec (#7180)
Fix reference count issue when using Http2FrameCodec / Http2MultiplexCodec with 
HttpServerUpgradeHandler (#7176)
Fix StompSubframeDecoder.redHeaders no any notification when parsed line that 
contains multiple colon (#7160)
DefaultSocks5CommandRequest incorrectly rejects SOCKS5 commands with dstPort=0 
(#7157)


The most important changes for 4.0.51.Final and 4.1.15.Final are:

Support JDK9-native ALPN (#7126)
More bullet-proof way of detecting if ipv6 is supported or not when using the 
native transport (#7022)
DelegatingSslContext should also be able to configure the SslHandler (#7135)
Netty 4.1.14.Final fails to load on android (#7117)
Include JNIEXPORT on exported symbols (#7127)
Unify KQueue and Epoll wait timeout approach (#7042)
Make NativeLibraryLoader check java.library.path first (#7102)
Use the ByteBufAllocator when copy a ReadOnlyByteBufferBuf and so also be able 
to release it without the GC when the Cleaner is present (#7107)
Ensure netty builds with java9 (build 9+181) (#7106)
Make configurable the initial and max size of InternalThreadLocal.stringBuilder 
(#7093)
Fix endless loop in ByteBufUtil#writeAscii (#7096)
Correctly support SO_TIMEOUT for OioDatagramChannel (#7046)
Ensure we null out the previous set InetAddress on java.net.DatagramPacket 
(#7064)
Correctly handle connect/disconnect in EpollDatagramChannel (#6193)
Shutting down the outbound side of the channel should not accept future writes 
(#7041)
The most important changes for 4.1.15.Final only are:

Decouple DnsCache and DnsCacheEntry (#7129)
KQueue detect peer close without EVFILT_READ (#7124)
Support the little endian floats and doubles by ByteBuf (#7099)
We should prefer heap buffers when using the OIO transport to reduce memory 
copies (#7065)
First call channelReadComplete(...) before flush(...) for better performance 
(#7031)
HTTP/2 Child Channel and FrameCodec Feature Parity (#6896)
{noformat}

> Update trunk's netty to 4.1.128
> -------------------------------
>
>                 Key: CASSANDRA-14633
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14633
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Streaming and Messaging
>            Reporter: Jason Brown
>            Assignee: Jason Brown
>            Priority: Minor
>             Fix For: 4.x
>
>
> Upgrade the version of netty in trunk (4.0) to 4.1.28. We currently have 
> 4.1.14, and there's been lots of bug fixes since we last updated this for 
> trunk.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to