ITADN

[Linux] run `just dev` crashed on startup with `Option::unwrap()` panic in tao event loop

#680Openfweng322 创建于 2026-05-20
F
fweng322commented
Since there's no Linux package now, I checkout the git repository and built on my (k)ubuntu 24.04. `just build` succeeded. But when running `just dev` (or `cd tauri && bun run tauri dev`) brings up the main window and then immediately aborts the process with a non-unwinding panic from `tao` before the UI is usable. ## Environment - OS: Linux 6.8.0-117-generic (Ubuntu-flavoured), x86_64 - Voicebox: 0.5.0 (branch `main`, post #544) - Rust toolchain: stable (cargo registry shows `tao 0.34.5`, `tauri 2.9.5`, `tauri-runtime-wry 2.9.3`, `glib 0.18.5`, `gtk 0.18.2`) - Display server: X11 / GTK 3 via WebKitGTK - Python: 3.12.3 (uvicorn backend on :17493) ## Reproduction 1. `just setup` (one-time). 2. `just dev`. 3. Wait for cargo to finish building `voicebox` and the binary to launch (`Running target/debug/voicebox`). 4. The main window briefly opens, then the process aborts. The frontend at this point has done nothing more than load the SPA — the only HTTP request that reaches the backend before the crash is `GET /events/speak` (the Rust-side SSE subscriber in `speak_monitor`). ## Expected `just dev` brings up the desktop app and stays running, mirroring `just build`'s bundled behaviour. ## Actual It crashed on startup. Console error log: ``` INFO: 127.0.0.1:36638 - "GET /events/speak HTTP/1.1" 200 OK thread 'main' (18104) panicked at /home/franklin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tao-0.34.5/src/ platform_impl/linux/event_loop.rs:449:18: called `Option::unwrap()` on a `None` value note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace thread 'main' (18104) panicked at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:225:5 : panic in a function that cannot unwind stack backtrace: INFO:     127.0.0.1:33184 - "OPTIONS /settings/captures HTTP/1.1" 200 OK   0:     0x5cbba2d390ba - std[e28293b1aa0f68bd]::backtrace_rs::backtrace::libunwind::trace                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/../../backtrace/src /backtrace/libunwind.rs:117:9   1:     0x5cbba2d390ba - std[e28293b1aa0f68bd]::backtrace_rs::backtrace::trace_unsynchronized::<std[e28293b1aa0f68b d]::sys::backtrace::_print_fmt::{closure#1}>                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/../../backtrace/src /backtrace/mod.rs:66:14   2:     0x5cbba2d390ba - std[e28293b1aa0f68bd]::sys::backtrace::_print_fmt                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:74 :9   3:     0x5cbba2d390ba - <<std[e28293b1aa0f68bd]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[c 1f1a4ba060b9bfa]::fmt::Display>::fmt                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:44 :26   4:     0x5cbba2d5245a - <core[c1f1a4ba060b9bfa]::fmt::rt::Argument>::fmt                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/fmt/rt.rs:152:76   5:     0x5cbba2d5245a - core[c1f1a4ba060b9bfa]::fmt::write   6:     0x5cbba2d3ec52 - std[e28293b1aa0f68bd]::io::default_write_fmt::<std[e28293b1aa0f68bd]::sys::stdio::unix::St derr>                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/mod.rs:639:11   7:     0x5cbba2d3ec52 - <std[e28293b1aa0f68bd]::sys::stdio::unix::Stderr as std[e28293b1aa0f68bd]::io::Write>::wri te_fmt                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/mod.rs:1994:13   8:     0x5cbba2d127ff - <std[e28293b1aa0f68bd]::sys::backtrace::BacktraceLock>::print                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:47 :9   9:     0x5cbba2d127ff - std[e28293b1aa0f68bd]::panicking::default_hook::{closure#0}                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:292:27  10:     0x5cbba2d2edd1 - std[e28293b1aa0f68bd]::panicking::default_hook                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:319:9  11:     0x5cbba2d2f04b - std[e28293b1aa0f68bd]::panicking::panic_with_hook                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:825:13  12:     0x5cbba2d128ea - std[e28293b1aa0f68bd]::panicking::panic_handler::{closure#0}                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:691:13  13:     0x5cbba2d09789 - std[e28293b1aa0f68bd]::sys::backtrace::__rust_end_short_backtrace::<std[e28293b1aa0f68bd]: :panicking::panic_handler::{closure#0}, !>                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:18 2:18  14:     0x5cbba2d13bed - __rustc[b7974e8690430dd9]::rust_begin_unwind                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:689:5  15:     0x5cbba2d52bdd - core[c1f1a4ba060b9bfa]::panicking::panic_nounwind_fmt::runtime                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:122:2 2  16:     0x5cbba2d52bdd - core[c1f1a4ba060b9bfa]::panicking::panic_nounwind_fmt                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/intrinsics/mod.rs: 2447:9  17:     0x5cbba2d52b5b - core[c1f1a4ba060b9bfa]::panicking::panic_nounwind                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:225:5  18:     0x5cbba2d52ce7 - core[c1f1a4ba060b9bfa]::panicking::panic_cannot_unwind                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/panicking.rs:337:5  19:     0x5cbba16a0a47 - glib::main_context_channel::dispatch::h3e10e85263d94f7a                               at /home/franklin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/glib-0.18.5/src /main_context_channel.rs:207:1  20:     0x7d50264d5585 - <unknown>  21:     0x7d5026534977 - <unknown>  22:     0x7d50264d4a23 - g_main_context_iteration  23:     0x7d50203feced - gtk_main_iteration_do INFO:     127.0.0.1:33184 - "GET /settings/captures HTTP/1.1" 200 OK INFO:     127.0.0.1:33200 - "OPTIONS /capture/readiness HTTP/1.1" 200 OK  24:     0x5cbba24ce409 - gtk::auto::functions::main_iteration_do::hbedd429a5a24adaa                               at /home/franklin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/gtk-0.18.2/src/ auto/functions.rs:392:24 INFO:     127.0.0.1:33200 - "GET /capture/readiness HTTP/1.1" 200 OK  25:     0x5cbba14c867b - tao::platform_impl::platform::event_loop::EventLoop<T>::run_return::{{closure}}::h1e25aeb8 f359a423                               at /home/franklin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tao-0.34.5/src/ platform_impl/linux/event_loop.rs:1131:11  26:     0x5cbba1933a89 - glib::main_context::<impl glib::auto::main_context::MainContext>::with_thread_default::h6a 3afd5ee19c4a84                               at /home/franklin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/glib-0.18.5/src /main_context.rs:154:12  27:     0x5cbba14c8182 - tao::platform_impl::platform::event_loop::EventLoop<T>::run_return::hfed595ada628b309                               at /home/franklin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tao-0.34.5/src/ platform_impl/linux/event_loop.rs:1030:8  28:     0x5cbba14c90b3 - tao::platform_impl::platform::event_loop::EventLoop<T>::run::h20552bf22604fc19                               at /home/franklin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tao-0.34.5/src/ platform_impl/linux/event_loop.rs:983:26  29:     0x5cbba14a98b4 - tao::event_loop::EventLoop<T>::run::hc07c4e95e870ec59                               at /home/franklin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tao-0.34.5/src/ event_loop.rs:214:21  30:     0x5cbba19ffc7e - <tauri_runtime_wry::Wry<T> as tauri_runtime::Runtime<T>>::run::h8b6f44cfd47a3517                               at /home/franklin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tauri-runtime-w ry-2.9.3/src/lib.rs:3087:21  31:     0x5cbba1a4c734 - tauri::app::App<R>::run::hd4562b14d1e57a88                               at /home/franklin/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tauri-2.9.5/src /app.rs:1249:8  32:     0x5cbba1b0f490 - voicebox::run::hc0fab6f8523046cc                               at /opt2/voicebox/tauri/src-tauri/src/main.rs:1427:10  33:     0x5cbba1b0f536 - voicebox::main::hdd77d42b8da17a12                               at /opt2/voicebox/tauri/src-tauri/src/main.rs:1502:5  34:     0x5cbba16abe7b - core::ops::function::FnOnce::call_once::ha9ce3aca2bc8bb3c                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/ops/function.rs:25 0:5  35:     0x5cbba161332e - std::sys::backtrace::__rust_begin_short_backtrace::hc239b0de31284fde                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sys/backtrace.rs:16 6:18  36:     0x5cbba167fad1 - std::rt::lang_start::{{closure}}::h84a39bf88e34a73b                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/rt.rs:206:18  37:     0x5cbba2d2db84 - <&dyn core[c1f1a4ba060b9bfa]::ops::function::Fn<(), Output = i32> + core[c1f1a4ba060b9bfa] ::marker::Sync + core[c1f1a4ba060b9bfa]::panic::unwind_safe::RefUnwindSafe as core[c1f1a4ba060b9bfa]::ops::function:: FnOnce<()>>::call_once                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/ops/function.rs:28 7:21  38:     0x5cbba2d2db84 - std[e28293b1aa0f68bd]::panicking::catch_unwind::do_call::<&dyn core[c1f1a4ba060b9bfa]::ops ::function::Fn<(), Output = i32> + core[c1f1a4ba060b9bfa]::marker::Sync + core[c1f1a4ba060b9bfa]::panic::unwind_safe: :RefUnwindSafe, i32>                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:581:40  39:     0x5cbba2d2db84 - std[e28293b1aa0f68bd]::panicking::catch_unwind::<i32, &dyn core[c1f1a4ba060b9bfa]::ops::fu nction::Fn<(), Output = i32> + core[c1f1a4ba060b9bfa]::marker::Sync + core[c1f1a4ba060b9bfa]::panic::unwind_safe::Ref UnwindSafe>                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:544:19  40:     0x5cbba2d2db84 - std[e28293b1aa0f68bd]::panic::catch_unwind::<&dyn core[c1f1a4ba060b9bfa]::ops::function::F n<(), Output = i32> + core[c1f1a4ba060b9bfa]::marker::Sync + core[c1f1a4ba060b9bfa]::panic::unwind_safe::RefUnwindSaf e, i32>                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panic.rs:359:14  41:     0x5cbba2d2db84 - std[e28293b1aa0f68bd]::rt::lang_start_internal::{closure#0}                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/rt.rs:175:24  42:     0x5cbba2d2db84 - std[e28293b1aa0f68bd]::panicking::catch_unwind::do_call::<std[e28293b1aa0f68bd]::rt::lang_ start_internal::{closure#0}, isize>                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:581:40  43:     0x5cbba2d2db84 - std[e28293b1aa0f68bd]::panicking::catch_unwind::<isize, std[e28293b1aa0f68bd]::rt::lang_st art_internal::{closure#0}>                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panicking.rs:544:19  44:     0x5cbba2d2db84 - std[e28293b1aa0f68bd]::panic::catch_unwind::<std[e28293b1aa0f68bd]::rt::lang_start_interna l::{closure#0}, isize>                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/panic.rs:359:14  45:     0x5cbba2d2db84 - std[e28293b1aa0f68bd]::rt::lang_start_internal                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/rt.rs:171:5  46:     0x5cbba167fab7 - std::rt::lang_start::h240bc989eb6b96f4                               at /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/rt.rs:205:5  47:     0x5cbba1b0f55e - main  48:     0x7d501dc2a1ca - <unknown>  49:     0x7d501dc2a28b - __libc_start_main  50:     0x5cbba14945a5 - _start  51:                0x0 - <unknown> thread caused non-unwinding panic. aborting. ```
3 条评论