astyanax
astyanax copied to clipboard
Fix for connection timeout.
TSocket supports only one timeout field so setting timeout or invoking TSocket.setTimeout sets both timeout field and sets underlying java socket's socket timeout. TSocket is set up with cpConfig.getConnectTimeout() which sets TSocket.timeout_ to connection timeout from Astyanax config which is as expected but also it set's underlying java socket timeout ot connection timeout. Later during ThriftConnection#setTimeout both timeout and java socket timeout set to cpConfig.getSocketTimeout. During transport.open then socket timeout used as a connection timeout which is not what expected. This fix moves ThriftConnection#setTimeout to later stage so socket is open using connection timeout and later java socket's socket timeout is set to cpConfig.getSocketTimeout.