-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
fix: restrict actor exit codes to non-system codes #3656
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is heading in a good direction! Let's loop in @Kubuxu for an early review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SGWM
This is a consensus breaking change I believe |
@alanshaw another red label for you |
ddfd8f1
to
936fafb
Compare
I don't think this can ever work. E.g.:
|
(please reopen if I'm wrong) |
This PR restricts actor methods from exiting with a system exit code. It changes
Runtime.Abortf
to only accept non-system and non-negative exit codes. If an actor attempts to exit with a system exit code it is intercepted and converted to aSysErrorIllegalActor
code.Instances where
Runtime.Abortf
was being called with a system error code have been changed to call a new package private functionvmabortf
, which allows aborting with all error codes.The test vectors added here assert that these changes do prevent actors from exiting with system exit codes.
refs filecoin-project/test-vectors#15