-
Bug
-
Resolution: Done
-
Major
-
9.0.0.Final
-
None
The buffering implementation of TcpTransport.socketInputStream needs to use fixed size input buffer, rather than growing as BufferedInputStream does. Growing buffer can lead to excessive memory consumption on heap, and more importantly, by direct memory allocated in JDK classes and pooled in thread-local caches.
EDIT: As Tristan pointed out, the BufferedInputStream does not grow in our use case, but if TcpTransport passes a big byte[] buffer, the implementation works as read through/write through. Therefore we need to chunk all calls.