You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by Gianni Ambrosio <gi...@vi-grade.com> on 2019/09/05 11:09:55 UTC

Adding a new method to IDL file then a client hangs on whatever call to an old server

Dear All,
this is a frustrating problem. I have a C# server and C++ client for 
desktop application. It happens that I have to add one method to the IDL 
file. I implement on both sides (server and client). Ad it works fine 
but when a colleague on the LAN starts an old server then calls from the 
client to the old server hangs.

Here is the code:

         boost::shared_ptr< apache::thrift::transport::TSocket > 
socket(new apache::thrift::transport::TSocket(remoteServerIp, 
remoteServerPort));
         socket->setConnTimeout(connectionTimeout);
         transport = boost::make_shared< 
apache::thrift::transport::TBufferedTransport >(socket);
         try {
             transport->open();
             client = boost::make_shared< UnityServiceClient 
 >(boost::make_shared< apache::thrift::protocol::TBinaryProtocol 
 >(transport));
             client->clientConnected(localIp, remoteServerIp);

Debugging runtime I found clientConnected call never exits. But that 
call was the same in the IDL file for months!
Is this a known issue or is there a workaround?

Best regards,
Gianni