Skip to content

Commit

Permalink
fix: revert part of #4181 to classify FailedWithNoError as determinis…
Browse files Browse the repository at this point in the history
…tic (#4278)

* fix: revert part of #4181 to classify FailedWithNoError as deterministic

* bump version
  • Loading branch information
matklad authored May 6, 2021
1 parent 39af874 commit daf13dd
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion neard/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "neard"
version = "1.19.0-rc.1"
version = "1.19.0-rc.2"
authors = ["Near Inc <hello@nearprotocol.com>"]
edition = "2018"
default-run = "neard"
Expand Down
16 changes: 15 additions & 1 deletion runtime/near-vm-runner/src/wasmer_runner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,21 @@ impl IntoVMError for wasmer_runtime::error::RuntimeError {
// Failed unwinder may happen in the case of deep recursion/stack overflow.
// Also can be thrown on unreachable instruction, which is quite unfortunate.
InvokeError::FailedWithNoError => VMError::FunctionCallError(
FunctionCallError::Nondeterministic("FailedWithNoError".to_string()),
// XXX: this is a hot-fix. Initially, we treated this error
// case as a normal one (so, we stored this error in our
// state, etc.)
//
// Then, in
// https://github.com/near/nearcore/pull/4181#discussion_r606267838
// we reasoned that this error actually happens
// non-deterministically, so it's better to panic in this
// case.
//
// However, when rolling this out, we noticed that this
// error happens deterministically for at least one
// contract, so here we flip it back to some deterministic
// error, which won't cause the node to panic.
FunctionCallError::WasmTrap(WasmTrap::Unreachable)
),
// Indicates that a trap occurred that is not known to Wasmer.
// As of 0.17.0, thrown only from Cranelift BE.
Expand Down

0 comments on commit daf13dd

Please sign in to comment.