Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
791 changes: 544 additions & 247 deletions Cargo.Bazel.json.lock

Large diffs are not rendered by default.

198 changes: 124 additions & 74 deletions Cargo.Bazel.toml.lock

Large diffs are not rendered by default.

208 changes: 129 additions & 79 deletions Cargo.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bazel/rust.MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -1893,7 +1893,7 @@ crate.spec(
"runtime",
],
package = "wasmtime",
version = "^42.0.1",
version = "^43.0.1",
)
crate.spec(
package = "wast",
Expand Down
2 changes: 1 addition & 1 deletion rs/embedders/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ slog-term = { workspace = true }
tempfile = { workspace = true }
wasm-encoder = { workspace = true }
wasmparser = { workspace = true }
wasmtime = { version = "42.0.1", default-features = false, features = [
wasmtime = { version = "43.0.1", default-features = false, features = [
'cranelift',
'gc',
'gc-null',
Expand Down
2 changes: 1 addition & 1 deletion rs/embedders/fuzz/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ wasmparser = { workspace = true }
wasmprinter = { workspace = true }
libfuzzer-sys = "0.4"
wasm-smith = { version = "0.243.0", features = ["wasmparser"] }
wasmtime = { version = "42.0.1", default-features = false, features = [
wasmtime = { version = "43.0.1", default-features = false, features = [
'cranelift',
'gc',
'gc-null',
Expand Down
1 change: 0 additions & 1 deletion rs/embedders/src/wasm_utils/validation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1705,7 +1705,6 @@ pub fn wasmtime_validation_config(_embedders_config: &EmbeddersConfig) -> wasmti
config.generate_address_map(false);
// The signal handler uses Posix signals, not Mach ports on MacOS.
config.macos_use_mach_ports(false);
config.wasm_backtrace(false);
config.wasm_backtrace_details(wasmtime::WasmBacktraceDetails::Disable);
config.wasm_bulk_memory(true);
config.wasm_function_references(false);
Expand Down
22 changes: 7 additions & 15 deletions rs/embedders/tests/wasmtime_embedder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@ use ic_embedders::{
system_api_complexity,
},
};
use ic_interfaces::execution_environment::{HypervisorError, SystemApi, TrapCode};
use ic_interfaces::execution_environment::{
CanisterBacktrace, HypervisorError, SystemApi, TrapCode,
};
use ic_management_canister_types_private::Global;
use ic_registry_subnet_type::SubnetType;
use ic_replicated_state::canister_state::WASM_PAGE_SIZE_IN_BYTES;
Expand Down Expand Up @@ -315,11 +317,9 @@ fn stack_overflow_traps() {
panic!("Unexpected error {err:?}");
};
assert_eq!(trap_code, TrapCode::StackOverflow);
// TODO(DSM): Re-enable backtrace checking when backtraces are enabled again.
// for (_index, name) in backtrace.unwrap().0 {
// assert_eq!(name, Some("f".to_string()));
// }
assert!(backtrace.is_none());
for (_index, name) in backtrace.unwrap().0 {
assert_eq!(name, Some("f".to_string()));
}
})
.unwrap();

Expand Down Expand Up @@ -1657,19 +1657,11 @@ fn wasm_heap_oob_access() {
let err = instance
.run(FuncRef::Method(WasmMethod::Update("test".to_string())))
.unwrap_err();
// TODO(DSM): Re-enable backtrace checking when backtraces are enabled again.
// assert_eq!(
// err,
// HypervisorError::Trapped {
// trap_code: TrapCode::HeapOutOfBounds,
// backtrace: Some(CanisterBacktrace(vec![(5, Some("foo".to_string()))]))
// }
// );
assert_eq!(
err,
HypervisorError::Trapped {
trap_code: TrapCode::HeapOutOfBounds,
backtrace: None,
backtrace: Some(CanisterBacktrace(vec![(5, Some("foo".to_string()))]))
}
);
}
Expand Down
27 changes: 0 additions & 27 deletions rs/execution_environment/tests/backtraces.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ Canister Backtrace:.*
_wasm_backtrace_canister::ic0_trap::inner_2
_wasm_backtrace_canister::ic0_trap::inner
_wasm_backtrace_canister::ic0_trap::outer
_wasm_backtrace_canister::ic0_trap
"#;

fn env_with_backtrace_canister_and_visibility(
Expand Down Expand Up @@ -94,9 +93,7 @@ fn assert_error(
);
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn unreachable_instr_backtrace() {
let (env, canister_id) = env_with_backtrace_canister();
assert_error(
Expand All @@ -109,9 +106,7 @@ fn unreachable_instr_backtrace() {
);
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn no_backtrace_without_name_section() {
let (env, canister_id) = env_with_backtrace_canister_and_visibility(
LogVisibilityV2::Controllers,
Expand Down Expand Up @@ -144,9 +139,7 @@ fn no_backtrace_without_name_section() {
}
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn oob_backtrace() {
let (env, canister_id) = env_with_backtrace_canister();
assert_error(
Expand All @@ -164,9 +157,7 @@ _wasm_backtrace_canister::oob::outer
)
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn backtrace_test_ic0_trap() {
let (env, canister_id) = env_with_backtrace_canister();
assert_error(
Expand All @@ -181,9 +172,7 @@ fn backtrace_test_ic0_trap() {
);
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn backtrace_test_stable_oob() {
let (env, canister_id) = env_with_backtrace_canister();
assert_error(
Expand Down Expand Up @@ -256,9 +245,7 @@ mod visibility {
);
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn unreachable_non_controller_and_private() {
check_visibility(
OTHER1,
Expand All @@ -270,9 +257,7 @@ mod visibility {
);
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn unreachable_not_in_viewer_list() {
check_visibility(
OTHER1,
Expand All @@ -284,9 +269,7 @@ mod visibility {
);
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn unreachable_in_viewer_list() {
check_visibility(
OTHER2,
Expand All @@ -298,9 +281,7 @@ mod visibility {
);
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn unreachale_public() {
check_visibility(
OTHER1,
Expand All @@ -312,9 +293,7 @@ mod visibility {
);
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn ic0_non_controller_and_private() {
check_visibility(
OTHER1,
Expand All @@ -326,9 +305,7 @@ mod visibility {
);
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn ic0_not_in_viewer_list() {
check_visibility(
OTHER1,
Expand All @@ -340,9 +317,7 @@ mod visibility {
);
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn ic0_in_viewer_list() {
check_visibility(
OTHER2,
Expand All @@ -354,9 +329,7 @@ mod visibility {
);
}

// TODO(DSM): Re-enable when backtraces are enabled again.
#[test]
#[ignore]
fn ic0_public() {
check_visibility(
OTHER1,
Expand Down
Loading