I hope this helps . In Netty 4, a write() operation merely puts the write request to a per-channel queue. It is the flush() operation that actually tells Netty to write the write requests in the per-channel queue out to the socket. In an older version of Netty 4, SslHandler had a bug where it auto-flushes every write requests, and it has been fixed recently. It's probably your old code does not work anymore. (The hidden bug in your code has been revealed by our bug fix.)
gRPC + SSL + uber jar + Linux = Failed to load netty-tcnative
fixed the issue. Will look into that further Upgrading to io.grpc/grpc-all/0.14.0 (from 0.13.2) cured my problem because it brings in a newer version of io.netty/netty-handler (4.1.0.CR7 vs. 4.1.0.CR3).
Failed to load any of the given libraries: [netty-tcnative-linux-x86_64,netty-tcnative]
With these it helps I found out the solution, i upgraded netty-tcnative-boringssl-static to 2.0.7 and with this change all the other versions had to be upgraded (check the table in troubleshooting section in https://github.com/grpc/grpc-java/blob/master/SECURITY.md). This is the list i have used,