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

Robust failure reporting mechanism for VM and syscalls #3844

Closed
anorth opened this issue Mar 6, 2020 · 0 comments
Closed

Robust failure reporting mechanism for VM and syscalls #3844

anorth opened this issue Mar 6, 2020 · 0 comments

Comments

@anorth
Copy link
Member

anorth commented Mar 6, 2020

VM syscalls and other methods by which actor code interacts with its environment may generally fail for two different types of reason:

  • a predictable and deterministic reason such as misuse by actor code or a caller
  • an unpredictable, non-deterministic reason such as a local disk or memory error

The former type is be handled by the actor code explicitly, but the latter should not be as it cannot lead to convergence on the resulting state. Instead, VM processing must halt and the node decide what to do with this failing state.

Right now, we use panics for the latter to avoid accidentally indicating state convergence, which the VM catches. These panics are not all obvious at their place of raising and it would be easy to accidentally return an error value for a case that should not error.

We need a more robust, preferably type-checked mechanism for distinguishing and explicitly handling such error propagation (the VM internally may still use panic as a control flow mechanism, but code outside the VM context itself shouldn't know or care).

@hunjixin hunjixin closed this as completed Jan 4, 2021
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

No branches or pull requests

2 participants