-
Notifications
You must be signed in to change notification settings - Fork 720
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix event config loading defaulting to RT_UNRELIABLE #866
base: master
Are you sure you want to change the base?
Conversation
For more context. In the v3.3 branch, there were significant (breaking/regression) changes made to parsing and handling of (temporary) 'event' entries being created when parsing "eventgroups" and then being updated when the event was actually parsed later. For context, here is a small config file snippet:
In the existing code, during config file parsing, "eventgroups" are processed before "events" (lexical order). The event "0xc101" is created with a dummy/placeholder/temporary event entry with a reliability type set to In the v3.3 the following code was removed:
and replaced with the following in v3.3:
As you can see, the This So what happens currently, is that a "dummy"/"placeholder" event is created (because the eventgroup only knows the event ID, and not the details of the event yet); but the event is created with a default reliability type of This is a BREAKING regression issue for event parsing. Without a sufficient way to determine if a "placeholder" event was created or not, the existing code skips updating the reliability type of the event. What I've done instead, is to use the This is the existing code that creates a "dummy"/"placeholder" events entry. This code is found in the
As you can see from the following lines:
An For reference, the OLD 3.2 code to create the temporary/placeholder entry in "events" just looked like this:
Without the Here is the diff between the old 3.2 and 3.3 branch, you'll need to expand the "vsomeip/implementation/configuration/src/configuration_impl.cpp" file on line 1655: |
04e3ff5
to
a03310f
Compare
Summary: When events are first parsed, the config loader reads eventgroups first. Because the event doesn't have an existing configuration, it creates one with RT_UNRELIABLE by default. But when the actual event is parsed, it detects the dummy event and displays a VSOMEIP_INFO message; and the event reliability type is not being correctly updated to RT_RELIABLE. This fix changes the default reliability type to RT_UNKNOWN when events are created from 'eventgroup' parsing. And then updates the event correctly when the actual event entry is parsed.
a03310f
to
b00e4fc
Compare
Summary:
When events are first parsed, the config loader reads eventgroups first. Because the event doesn't have an existing configuration, it creates one with RT_UNRELIABLE (UDP) by default. But when the actual event is parsed, it detects the dummy event and displays a VSOMEIP_INFO message; and the event reliability type is not being correctly updated to RT_RELIABLE (TCP). This fix changes the default reliability type to RT_UNKNOWN when events are created from 'eventgroup' parsing. And then updates the event correctly when the actual event entry is parsed.