TException:MISSING_RESULT thrift exception on T_COMPACT_PROTOCOL asynchrounsly thrift client call

30 Views Asked by At

I'm using C++ asynchronously thrift for IPC inside my application.
One client of my thrift is connected to the server using T_PROTOCOL_COMPACT protocol using TCompactProtocolFactory (and of course the transport is TAsioTcpConnectServerTransport).

I do see that my client is being connected successfully to the server.

Client side:

2024-01-29 09:23:40,636 INFO  [0x7ffff53576c0] ClientEventHandler<Interface> (../../src/ipc/thrift/AsyncThriftClient.tpp:68) 229 - "Function":"onConnect", "Event":"ASYNC_THRIFT_CLIENT_ON_CONNECT", "Message":"Client connects to the server", "ServiceName":"MulpiSvcClient.10.244.22.229", "RemoteEndpoint":"10.244.22.229:23501"
2024-01-29 09:23:40,636 INFO  [0x7ffff53576c0] ClientEventHandler<Interface> (../../src/ipc/thrift/AsyncThriftClient.tpp:75) 229 - "Function":"onConnect", "Event":"ASYNC_THRIFT_CLIENT_ON_CONNECT", "Message":"Client was created successfully to the server"

Server side

2024-01-29T09:23:40.636009637Z {"Role": "active", "Severity": "INFO", "Package": "server", "Version" : "1.48-598.2", "File": "ThriftServiceManager.hpp:25", "Logger": "server.api", "Function": "onConnect", Connected local=[::ffff:10.244.22.228]:23501 remote=[::ffff:10.244.22.253]:52436}

But I see that sometimes the call is successful but in most time I get TException thrown.

Thrift: Mon Jan 29 09:22:01 2024 Unhandled exception MISSING_RESULT Exception: 'GetOfdmaCmMerData'

I will add also a screenshot from PCAP file I've captured on the client side. enter image description here

Is there any reason why this can be happening? Is it because the server side drops the client request or maybe the client didn't waited enough for the server response?

EDIT:
Adding here logs from successful call

2024-01-29T09:47:38.293726795Z {"Severity": "ERROR", "Package": "client", "Version" : "1.0-21", "File": "../../src/external-interfaces/mulpi/clientInterface.cpp", "Line": "272", "Function": "GetOfdmaCmMerData", "Event":"EXT_IFACES_MULPI_GET_OFDMA_CHANNEL_DATA", "Message":"GetOfdmaCmMerData", "Id":"0x1000000", "subId":"0x29", "serverIp":"10.244.22.229", "mdOfdmaCmMerDataFetchSize:":"MdOfdmaCmMerData {
2024-01-29T09:47:38.293762061Z   Id: 16777216
2024-01-29T09:47:38.293769181Z   SubId: 0
2024-01-29T09:47:38.293773881Z   ofdmaCmMerData: OfdmaCmMerData {
2024-01-29T09:47:38.293778161Z   mslotsInfo: 
2024-01-29T09:47:38.293782125Z     Key: 0, Value: MinislotInfo {
2024-01-29T09:47:38.293785868Z   index: 0
2024-01-29T09:47:38.293789721Z   lowerFreq: 39000000
2024-01-29T09:47:38.293793793Z }
2024-01-29T09:47:38.293797520Z     Key: 1, Value: MinislotInfo {
2024-01-29T09:47:38.293801191Z   index: 1
2024-01-29T09:47:38.293805018Z   lowerFreq: 39400000
2024-01-29T09:47:38.293808412Z }
2024-01-29T09:47:38.293812383Z     Key: 2, Value: MinislotInfo {
2024-01-29T09:47:38.293816468Z   index: 2
2024-01-29T09:47:38.293820141Z   lowerFreq: 39800000
2024-01-29T09:47:38.293823760Z }
...
2024-01-29T09:47:38.302070699Z     Key: 170, Value: MinislotInfo {
2024-01-29T09:47:38.302074986Z   index: 170
2024-01-29T09:47:38.302079187Z   lowerFreq: 107000000
2024-01-29T09:47:38.302083072Z }
2024-01-29T09:47:38.302087105Z   mers: 
2024-01-29T09:47:38.302091026Z }
1

There are 1 best solutions below

0
ms_stud On

SOLVED:
The issue was that the connection was sometimes opened to server with same THRIFT IFACE but with different IP which doesn't have the requested data inside it.