Avoid crashloop in case of invalid connector #112
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
When Invalid connector is created (e.g. liveobjects connector with invalid API key) the system returns error, but the connector is created anyway. In such case a microservice keeps working normally.
However, when the microservice is restarted and it fails to create a connection (in
LNSIntegrationService::init
) it enters crashloop: it keeps trying to create the invalid connection because of the way how cumulocity SDK reacts in exception from methods reacting onMicroserviceSubscriptionAddedEvent
. The microservice is not operational in such case and when requested, cumulocity claims it's not subscribed by a tenant.Solution
Errors at a single connector creation are logged and swallowed not affecting a whole microservice and other connectors.