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