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
In a multi routing manager scenario, I define a different "diagnosis" field in each .json file.
When running, the same "diagnosis" value is used for both routing managers: it is the value used by the routing manager that receives the first client connection. The issue is in function "utility::request_client_id(...)".
Here is the fix: remove the usage of static that act as global variables.
The real issue is not that they are global, but that in C++ a static variable instruction (in a function) is executed only the very first time. The fact that they are also const reenforced the problem, forcing the first instance to define its prefix and mask for the whole ECU.
As reminder, the function utility::request_client_id() is reused by several application_impl and several routing managers. Each has its own diagnoses, max number of clients, etc.
But to make the ClientIds unique overall, as requested by the reqs, the "map" used to store the defined ClientId must be unique (on ECU).
vSomeip Version
v3.4.9
Boost Version
1.76.0
Environment
Embedded Linux
Describe the bug
In a multi routing manager scenario, I define a different "diagnosis" field in each .json file.
When running, the same "diagnosis" value is used for both routing managers: it is the value used by the routing manager that receives the first client connection. The issue is in function "utility::request_client_id(...)".
Here is the fix: remove the usage of static that act as global variables.
Reproduction Steps
No response
Expected behaviour
Apply the "diagnosis" value of each routing manager.
Logs and Screenshots
No response
The text was updated successfully, but these errors were encountered: