Hi,

https://issues.apache.org/jira/browse/THRIFT-5327 is raised to track this issue.

Thanks
Hari
________________________________
From: Jens Geyer <jensge...@hotmail.com>
Sent: Tuesday, December 29, 2020 5:27 PM
To: user@thrift.apache.org <user@thrift.apache.org>
Subject: Re: ServerHello is sent with a delay from thrift

"External email. Open with Caution"

Could you file a JIRA ticket including the test case? Sounds like someone 
should have a look at it.

Sent from mobile device. You know what that means...

________________________________
From: Hari Venkata Ramana Addepalli <hari.addepa...@tcs.com.INVALID>
Sent: Tuesday, December 29, 2020 11:56:51 AM
To: user@thrift.apache.org <user@thrift.apache.org>
Subject: ServerHello is sent with a delay from thrift

Hi,

I have a C++ environment which uses thrift for server. Server is of type 
TThreadPoolServer with TBufferedTransportFactory as transport and  
TBinaryProtocolFactory as protocol. Clients get connected to this server and 
this happens via TLS.  We are using thrift server with version 0.13.0 on the 
server end.

In one of the environments where a client using thrift (version 0.10.0), the 
client Hello is sent as part of initial TLS negotiation. We have observed that 
the server Hello is sent after around 25-30 seconds after the client Hello is 
received by the server.

In these cases where delay is observed on server end we are printing the client 
origin details, ie., the server ip of client and the port from which it is 
connecting to the server.

functionXXX(const ::apache::thrift::TConnectionInfo& connInfo)
{
    std::string origin = connInfo.input->getInputTransport()->getOrigin();
    printf("CONNECTED: %s\n", origin.c_str() );

   .......
}
In cases where the ServerHello is delayed from thrift, we see the junk 
characters in prints from the above code as shown below:


{ Info = "CONNECTED:  ����:52089"}

{ Info = "CONNECTED: ����:52465"}

{ Info = "CONNECTED: ����:55027"}

{ Info = "CONNECTED: ����:59066"}

In cases where the IP address of the client is shown as normal characters (as 
shown below) we dont see any delay in the serverHello sent from the thrift 
server and it just takes few milli seconds to send the serverHello back to 
client.

 { Info = "CONNECTED: 172.30.1.41:46573"}

Looking at the change history we see the following change done in thrift 0.13.0:

- [THRIFT-4762](https://issues.apache.org/jira/browse/THRIFT-4762) - cpp: 
TTransport::getOrigin() is now const

Could this be the cause of the delay from the thrift server in sending the 
Server Hello back to clients as part of TLS negotiation?

Any pointers here would be very useful.

Thanks
Hari

Reply via email to