vsomeip
vsomeip copied to clipboard
[BUG]: No ACK after 'application_impl::start() caught exception'
vSomeip Version
v3.5.5
Boost Version
1.78
Environment
Embedded Linux
Describe the bug
When the boost::asio::io_service within application_impl catches an exception (application_impl::start() caught exception), no response (e.g. SubscribeAck or SubscribeNack) will be sent for new Subscription requests. In this code section I added some more debug traces:
while(true) {
try {
VSOMEIP_ERROR << "application_impl::start() AAA";
io_.run();
VSOMEIP_ERROR << "application_impl::start() BBB";
break;
} catch (const std::exception &e) {
VSOMEIP_ERROR << "application_impl::start() "
"caught exception: " << e.what();
}
VSOMEIP_ERROR << "application_impl::start() BCD";
}
The output is (internal project specific traces replaced by 'x'):
...
[error] application_impl::start() AAA
...
[error] application_impl::start() caught exception: xxxxxx
[error] application_impl::start() BCD
[error] application_impl::start() AAA
...
Reproduction Steps
- Start application
- Send SOME/IP subscription requests permanently very fast (without delay) for multiple SOME/IP services/methods and send unsubscription requests for all at the end. Repeat subscription and unsubscription in a infinite loop.
- Wait for exception handling occurence
- Send SOME/IP subscription requests again --> no ACK/NACK available
Expected behaviour
After exception handling the io_.run() should handle all new incoming requests like the ones before exception handling. But it doesn't handle new requests anymore and thus doesn't sent any response.
Logs and Screenshots
No response