NRF serialization: Handle restarted app in 2.0 world #3154
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.
Pull Request Overview
I think somewhere in the 2.0 update the NRF serialization capsule no longer worked if an app faulted and restarted. This updates the capsule to support restarting an app using the nrf serialization.
The issue is with receive: if a second app (ie the new processid after the original app faulted and was restarted) calls receive, the capsule would see there is already an active app (the original app), and the kernel would return an error and everything would break at that point.
Now, we on a receive command we check: is there an active app? If so, does that app still exist? If so -> error. Otherwise, mark this new app as the active app.
Testing Strategy
Using the process console to fault the hail app.
TODO or Help Wanted
n/a
Documentation Updated
/docs, or no updates are required.Formatting
make prepush.