You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Loop calls of none oneway API on arbitrated client, where transport layer send fails.
You expect in first tomes to get the send fail, till memory leakege block your system and then the token getting will fail:
Describe the bug
In ArbitratedClientManager::performClientRequest, in case of none oneway API token is aquired:
erpc/erpc_c/infra/erpc_arbitrated_client_manager.cpp
Line 58 in 5c2c6b7
The token is released just as part of calling m_arbitrator->clientReceive(token), but this call is done just if codec status is OK:
erpc/erpc_c/infra/erpc_arbitrated_client_manager.cpp
Lines 83 to 86 in 5c2c6b7
Hence if m_arbitrator->send fails, the token won't get released:
erpc/erpc_c/infra/erpc_arbitrated_client_manager.cpp
Lines 77 to 78 in 5c2c6b7
To Reproduce
Loop calls of none oneway API on arbitrated client, where transport layer send fails.
You expect in first tomes to get the send fail, till memory leakege block your system and then the token getting will fail:
erpc/erpc_c/infra/erpc_arbitrated_client_manager.cpp
Lines 59 to 62 in 5c2c6b7
Expected behavior
Token is always released before exiting ArbitratedClientManager::performClientRequest
Screenshots
Desktop (please complete the following information)
Steps you didn't forgot to do
Additional context
The text was updated successfully, but these errors were encountered: