[
https://issues.apache.org/jira/browse/THRIFT-2268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thiruvel Thirumoolan updated THRIFT-2268:
-----------------------------------------
Attachment: THRIFT-2268.patch
Attaching preliminary patch with which all unit tests pass. Here I track where
the EOF is reached, if its reached before the header or a proper header is
read, then I throw a different exception and ignore it later. I use a new
exception because, this happens during getTransport() and the thrift
application could have overriden the transportFactory (which Hive does) and any
other exceptions might get swallowed.
> Modify TSaslTransport to ignore TCP health checks from loadbalancers
> --------------------------------------------------------------------
>
> Key: THRIFT-2268
> URL: https://issues.apache.org/jira/browse/THRIFT-2268
> Project: Thrift
> Issue Type: Improvement
> Components: Java - Compiler
> Affects Versions: 0.9
> Reporter: Thiruvel Thirumoolan
> Priority: Minor
> Fix For: 0.9.2, 1.0
>
> Attachments: THRIFT-2268.patch
>
>
> Thrift Server with TSaslTransport throws TTransportExceptions when deployed
> behind a hardware load balancer.
> We have deployed thrift servers HiveServer2 and HCatalog (both Apache Hive
> components) behind hardware load balancers. The load balancer does a TCP
> health check on the port where the thrift server (HiveServer2/HCatalog) is
> running. Some of the load balancers complete the TCP handshake and then close
> the connection without any data and therefore thrift has to handle it this
> connection. Because the TCP health check happens very frequently - about
> 10-20 times a minute, the logs are filled with TTransportExceptions. The
> current logic assumes a valid header and if its not present (TCP health
> check), then it keeps throwing exceptions.
> This JIRA attempts to ignore these which does not have a valid header.
--
This message was sent by Atlassian JIRA
(v6.1#6144)