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

does not make system unreserve in case ExecutionError::Actor is returned #3718

Closed
grishasobol opened this issue Feb 6, 2024 · 1 comment · Fixed by #3743
Closed

does not make system unreserve in case ExecutionError::Actor is returned #3718

grishasobol opened this issue Feb 6, 2024 · 1 comment · Fixed by #3743
Assignees
Labels
C0-bug Something isn't working

Comments

@grishasobol
Copy link
Member

grishasobol commented Feb 6, 2024

Problem

Currently we use default system reservation context in case ExecutionError::Actor is returned from execute_wasm. This is not correct in case message had been executed and has reservation context, but by some reasons after wake ExecutionError::Actor occurs. This can happen for example if we would make runtime upgrade with some breaking changes in wasm executor environment instantiation. And message was waked after runtime upgrade.
So, we must handle this case, in order to avoid possible panic from this place:

if let Some(system_reserve) = node.system_reserve() {
if !system_reserve.is_zero() {
return Err(InternalError::consumed_with_system_reservation().into());
}
}

@grishasobol grishasobol added the C0-bug Something isn't working label Feb 6, 2024
@ark0f
Copy link
Member

ark0f commented Feb 7, 2024

Worth to mention system reservation have to be unreserved after execution in any circumstances

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C0-bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants