This repository has been archived by the owner on Jul 1, 2024. It is now read-only.
AJD-568: Fix to processes dying randomly by introducing an autorespawning node container class #123
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.
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
andrepsawn_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.
Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.
After all checkboxes are checked, anyone who has write access can merge the PR.