You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Thiruvel Thirumoolan (JIRA)" <ji...@apache.org> on 2013/11/22 02:17:35 UTC

[jira] [Updated] (THRIFT-2268) Modify TSaslTransport to ignore TCP health checks from loadbalancers

     [ 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)