DioxusLabs / DioxusLabs/dioxus
`--wasm-split` panics when `codegen-units = 1`
- Dominant language
- Rust
- Stars
- 39.1k
- Forks
- 1.9k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 4
Description
**Problem**
Building the project linked below with `--wasm-spilt` panics with:
```
20.853s ERROR Thread tokio-runtime-worker panicked at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/walrus-0.23.3/src/module/functions/mod.rs:186:20:
assertion failed: !self.dead.contains(&id)
Stack backtrace:
0: anyhow::kind::Adhoc::new
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.98/src/backtrace.rs:27:14
1: dx::logging::TraceController::main::{{closure}}::{{closure}}
at /home/moritz/Documents/dioxus/packages/cli/src/logging.rs:313:23
2: as core::ops::function::Fn>::call
at /rustc/fa3155a644dd62e865825087b403646be01d4cef/library/alloc/src/boxed.rs:1987:9
3: std::panicking::panic_with_hook
at /rustc/fa3155a644dd62e865825087b403646be01d4cef/library/std/src/panicking.rs:842:13
4: std::panicking::panic_handler::{{closure}}
at /rustc/fa3155a644dd62e865825087b403646be01d4cef/library/std/src/panicking.rs:700:13
5: std::sys::backtrace::__rust_end_short_backtrace
at /rustc/fa3155a644dd62e865825087b403646be01d4cef/library/std/src/sys/backtrace.rs:174:18
6: __rustc::rust_begin_unwind
at /rustc/fa3155a644dd62e865825087b403646be01d4cef/library/std/src/panicking.rs:698:5
7: core::panicking::panic_fmt
at /rustc/fa3155a644dd62e865825087b403646be01d4cef/library/core/src/panicking.rs:78:14
8: core::panicking::panic
at /rustc/fa3155a644dd62e865825087b403646be01d4cef/library/core/src/panicking.rs:148:5
9: as core::ops::index::Index>>::index
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/walrus-0.23.3/src/tombstone_arena.rs:137:9
10: walrus::module::functions::ModuleFunctions::get
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/walrus-0.23.3/src/module/functions/mod.rs:186:20
11: walrus::passes::used::Used::new
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/walrus-0.23.3/src/passes/used.rs:162:41
12: walrus::passes::gc::run
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/walrus-0.23.3/src/passes/gc.rs:13:16
13: wasm_split_cli::Splitter::emit_main_module
at /home/moritz/Documents/dioxus/packages/wasm-split/wasm-split-cli/src/lib.rs:183:9
14: wasm_split_cli::Splitter::emit
at /home/moritz/Documents/dioxus/packages/wasm-split/wasm-split-cli/src/lib.rs:136:25
15: dx::build::request::BuildRequest::bundle_web::{{closure}}
at /home/moritz/Documents/dioxus/packages/cli/src/build/request.rs:3961:18
16: dx::build::request::BuildRequest::write_executable::{{closure}}
at /home/moritz/Documents/dioxus/packages/cli/src/build/request.rs:1326:51
17: dx::build::request::BuildRequest::build::{{closure}}
at /home/moritz/Documents/dioxus/packages/cli/src/build/request.rs:1041:22
18: dx::build::builder::AppBuilder::start::{{closure}}
at /home/moritz/Documents/dioxus/packages/cli/src/build/builder.rs:175:37
19: as core::future::future::Future>::poll
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/future.rs:133:9
20: tokio::runtime::task::core::Core::poll::{{closure}}
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/core.rs:365:24
21: tokio::loom::std::unsafe_cell::UnsafeCell::with_mut
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/loom/std/unsafe_cell.rs:16:9
22: tokio::runtime::task::core::Core::poll
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/core.rs:354:30
23: tokio::runtime::task::harness::poll_future::{{closure}}
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/harness.rs:535:30
24: as core::ops::function::FnOnce<()>>::call_once
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9
25: std::panicking::catch_unwind::do_call
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:590:40
26: __rust_try
27: std::panicking::catch_unwind
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:553:19
28: std::panic::catch_unwind
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
29: tokio::runtime::task::harness::poll_future
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/harness.rs:523:18
30: tokio::runtime::task::harness::Harness::poll_inner
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/harness.rs:210:27
31: tokio::runtime::task::harness::Harness::poll
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/harness.rs:155:20
32: tokio::runtime::task::raw::poll
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/raw.rs:325:13
33: tokio::runtime::task::raw::RawTask::poll
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/raw.rs:255:18
34: tokio::runtime::task::LocalNotified::run
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/mod.rs:509:13
35: tokio::runtime::scheduler::multi_thread::worker::Context::run_task::{{closure}}
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/scheduler/multi_thread/worker.rs:600:18
36: tokio::task::coop::with_budget
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/task/coop/mod.rs:167:5
37: tokio::task::coop::budget
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/task/coop/mod.rs:133:5
38: tokio::runtime::scheduler::multi_thread::worker::Context::run_task
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/scheduler/multi_thread/worker.rs:591:9
39: tokio::runtime::scheduler::multi_thread::worker::Context::run
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/scheduler/multi_thread/worker.rs:539:29
40: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}::{{closure}}
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/scheduler/multi_thread/worker.rs:504:24
41: tokio::runtime::context::scoped::Scoped::set
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/context/scoped.rs:40:9
42: tokio::runtime::context::set_scheduler::{{closure}}
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/context.rs:176:38
43: std::thread::local::LocalKey::try_with
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:315:12
44: std::thread::local::LocalKey::with
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:279:20
45: tokio::runtime::context::set_scheduler
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/context.rs:176:17
46: tokio::runtime::scheduler::multi_thread::worker::run::{{closure}}
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/scheduler/multi_thread/worker.rs:499:9
47: tokio::runtime::context::runtime::enter_runtime
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/context/runtime.rs:65:16
48: tokio::runtime::scheduler::multi_thread::worker::run
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/scheduler/multi_thread/worker.rs:491:5
49: tokio::runtime::scheduler::multi_thread::worker::Launch::launch::{{closure}}
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/scheduler/multi_thread/worker.rs:457:45
50: as core::future::future::Future>::poll
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/blocking/task.rs:42:21
51: tokio::runtime::task::core::Core::poll::{{closure}}
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/core.rs:365:24
52: tokio::loom::std::unsafe_cell::UnsafeCell::with_mut
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/loom/std/unsafe_cell.rs:16:9
53: tokio::runtime::task::core::Core::poll
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/core.rs:354:30
54: tokio::runtime::task::harness::poll_future::{{closure}}
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/harness.rs:535:30
55: as core::ops::function::FnOnce<()>>::call_once
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9
56: std::panicking::catch_unwind::do_call
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:590:40
57: __rust_try
58: std::panicking::catch_unwind
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:553:19
59: std::panic::catch_unwind
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
60: tokio::runtime::task::harness::poll_future
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/harness.rs:523:18
61: tokio::runtime::task::harness::Harness::poll_inner
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/harness.rs:210:27
62: tokio::runtime::task::harness::Harness::poll
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/harness.rs:155:20
63: tokio::runtime::task::raw::poll
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/raw.rs:325:13
64: tokio::runtime::task::raw::RawTask::poll
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/raw.rs:255:18
65: tokio::runtime::task::UnownedTask::run
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/task/mod.rs:546:13
66: tokio::runtime::blocking::pool::Task::run
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/blocking/pool.rs:161:19
67: tokio::runtime::blocking::pool::Inner::run
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/blocking/pool.rs:516:22
68: tokio::runtime::blocking::pool::Spawner::spawn_thread::{{closure}}
at /home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.46.1/src/runtime/blocking/pool.rs:474:47
69: std::sys::backtrace::__rust_begin_short_backtrace
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:158:18
70: std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:559:17
71: as core::ops::function::FnOnce<()>>::call_once
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panic/unwind_safe.rs:274:9
72: std::panicking::catch_unwind::do_call
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:590:40
73: __rust_try
74: std::panicking::catch_unwind
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:553:19
75: std::panic::catch_unwind
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
76: std::thread::Builder::spawn_unchecked_::{{closure}}
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:557:30
77: core::ops::function::FnOnce::call_once{{vtable.shim}}
at /home/moritz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
78: as core::ops::function::FnOnce>::call_once
at /rustc/fa3155a644dd62e865825087b403646be01d4cef/library/alloc/src/boxed.rs:1973:9
79: std::sys::thread::unix::Thread::new::thread_start
at /rustc/fa3155a644dd62e865825087b403646be01d4cef/library/std/src/sys/thread/unix.rs:126:17
80: start_thread
81: __GI___clone3 backtrace=CapturedBacktrace { error: assertion failed: !self.dead.contains(&id), error_type: Rust Panic, thread_name: Some("tokio-runtime-worker"), location: Some(SavedLocation { file: "/home/moritz/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/walrus-0.23.3/src/module/functions/mod.rs", line: 186, column: 20 }) }
20.904s DEBUG Setting builder to failed state
ERROR dx bundle: Build panicked! JoinError::Panic(Id(21), "assertion failed: !self.dead.contains(&id)", ...)
```
**Steps To Reproduce**
Steps to reproduce the behavior:
- Clone https://github.com/tucan-plus/tucan-plus/tree/dioxus-bug-reproducer-1
- `RUST_BACKTRACE=1 DIOXUS_LOG=trace,walrus::module::functions::local_function=debug,walrus::ir::traversals=debug cargo run --manifest-path ~/Documents/dioxus/packages/cli/Cargo.toml bundle --web --features direct --release --trace --wasm-split`
**Expected behavior**
+
Successfully compiles
**Screenshots**
**Environment:**
- Dioxus version: main
- Rust version: nightly
- OS info: NixOS 25.05
- App platform: web
**Questionnaire**
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.