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

AJD-568: Fix to processes dying randomly by introducing an autorespawning node container class #123

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

bartek-kc
Copy link

Description

The idea here is to introduce a Python class that would be available for use across all the Autoware and take care of respawning processes that randomly happen to die due to not yet discovered reasons. The class is derived from the standard rospy ComposableNodeContainer and introduces two new default arguments: respawn=True and repsawn_delay=0.5 (seconds). This ensures that a process that would die would subsequently be respawned and the error mentioned in AJD-568 wouldn't occur.

Related links

https://tier4.atlassian.net/browse/AJD-568

Tests performed

For now, the PR was tested only locally using the scenario mentioned in the related ticket. The following node containers were changed to RespawnableNodeContainers: autoware_iv_adaptor, awapi_relay_container, control_container, motion_velocity_smoother, behavior_planning_container. Since the bug occurs randomly this would require additional testing before merging.

Notes for reviewers

Introducing this fix would also require changing the above mentioned containers (and possibly others too) to RespawnableNodeContainer by casting PRs to their repositories.

Pre-review checklist for the PR author

The PR author must check the checkboxes below when creating the PR.

In-review checklist for the PR reviewers

The PR reviewers must check the checkboxes below before approval.

  • The PR follows the pull request guidelines.
  • The PR has been properly tested.
  • The PR has been reviewed by the code owners.

Post-review checklist for the PR author

The PR author must check the checkboxes below before merging.

  • There are no open discussions or they are tracked via tickets.
  • The PR is ready for merge.

After all checkboxes are checked, anyone who has write access can merge the PR.

@stale
Copy link

stale bot commented Jan 2, 2023

This pull request has been automatically marked as stale because it has not had recent activity.

@stale stale bot added the status:stale Inactive or outdated issues. (auto-assigned) label Jan 2, 2023
@xmfcx
Copy link
Contributor

xmfcx commented Apr 24, 2023

@bartek-kc nice work on the this PR! It's definitely a good idea that could help us out a lot.

Could you add some tests for this new class?

If that's not really doable, no worries – you can just share some clear instructions on how to test it manually, since I don't have access to the ticket mentioned.

@stale stale bot removed the status:stale Inactive or outdated issues. (auto-assigned) label Apr 24, 2023
@xmfcx xmfcx added type:new-feature New functionalities or additions, feature requests. status:stale Inactive or outdated issues. (auto-assigned) labels Apr 24, 2023
@stale stale bot removed the status:stale Inactive or outdated issues. (auto-assigned) label Apr 24, 2023
@stale
Copy link

stale bot commented Jun 23, 2023

This pull request has been automatically marked as stale because it has not had recent activity.

@stale stale bot added the status:stale Inactive or outdated issues. (auto-assigned) label Jun 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status:stale Inactive or outdated issues. (auto-assigned) type:new-feature New functionalities or additions, feature requests.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants