Skip to content
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

Never restart stopped TCE #801

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

joeyoravec
Copy link

Around suspend-to-ram it's likely that SOMEIP-SD and TCP sockets will be impacted by clocks jumping. In case:

  • SOMEIP-SD timeout is detected
  • clear_client_endpoints clears everything and stops the TCE endpoint
  • new OFFER is received

then there's a race condition where:

  • add_routing_info ends up creating a new endpoint
  • old (stopped) endpoint calls restart which clears sending_blocked_
  • new endpoint calls start

and may result in two connected endpoints, depending on execution order. In order to avoid this, never restart a stopped endpoint.

Around suspend-to-ram it's likely that SOMEIP-SD and TCP sockets will be
impacted by clocks jumping. In case:
- SOMEIP-SD timeout is detected
- clear_client_endpoints clears everything and stops the TCE endpoint
- new OFFER is received

then there's a race condition where:
- add_routing_info ends up creating a new endpoint
- old (stopped) endpoint calls restart which clears sending_blocked_
- new endpoint calls start

and may result in two connected endpoints, depending on execution order.
In order to avoid this, never restart a stopped endpoint.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant