clashtui
clashtui copied to clipboard
[Bug]: Crash if profiles directory is missing
Please make sure you have read the above considerations and tick the confirmation box below.
- [x] I've looked for the question I'm asking in Issue Tracker, and I didn't find the ISSUE for the same question.
- [x] The latest ci build hasn't fix this
Clashtui version
main branch at 2025-9-14
OS
Linux
Steps to reproduce the behavior
Without a profiles dir in ~/.config
Expected behavior
Automatically generate ~/.config/profile and startup
Actual results
Crash, without any information
thread 'main' panicked at src/tui/tabs/profile.rs:157:68:
called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
logs
Stack trace:
stack backtrace:
0: 0x563639d91292 - std::backtrace_rs::backtrace::libunwind::trace::hc20b48b31ee52608
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
1: 0x563639d91292 - std::backtrace_rs::backtrace::trace_unsynchronized::h5d207cd20f193d88
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
2: 0x563639d91292 - std::sys::backtrace::_print_fmt::h46402c32145e026c
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:66:9
3: 0x563639d91292 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hc04c8f544ab24d66
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:39:26
4: 0x563639dbcce3 - core::fmt::rt::Argument::fmt::h2bcd587ea50ac9a4
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/fmt/rt.rs:184:76
5: 0x563639dbcce3 - core::fmt::write::hfe57b7174b7d8eab
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/fmt/mod.rs:1481:21
6: 0x563639d8c833 - std::io::default_write_fmt::h20c7e2d50577e95e
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/io/mod.rs:639:11
7: 0x563639d8c833 - std::io::Write::write_fmt::h154385efa8565236
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/io/mod.rs:1914:13
8: 0x563639d910e2 - std::sys::backtrace::BacktraceLock::print::h0c8f24e22f5873a8
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:42:9
9: 0x563639d921c2 - std::panicking::default_hook::{{closure}}::hd07d57e6a602c8e4
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:300:22
10: 0x563639d91fc5 - std::panicking::default_hook::h63d12f7d95bd91ed
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:327:9
11: 0x563639d92b62 - std::panicking::rust_panic_with_hook::h33b18b24045abff4
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:833:13
12: 0x563639d9290a - std::panicking::begin_panic_handler::{{closure}}::hf8313cc2fd0126bc
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:706:13
13: 0x563639d91799 - std::sys::backtrace::__rust_end_short_backtrace::h57fe07c8aea5c98a
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/sys/backtrace.rs:168:18
14: 0x563639d9259d - __rustc[95feac21a9532783]::rust_begin_unwind
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:697:5
15: 0x5636397aaf30 - core::panicking::panic_fmt::hd54fb667be51beea
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/panicking.rs:75:14
16: 0x5636397ab426 - core::result::unwrap_failed::he8e27e02739cd3d2
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/result.rs:1704:5
17: 0x5636397b5514 - core::result::Result<T,E>::unwrap::h01a4495dd40c2b01
at /home/aurora/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:1109:23
18: 0x5636397b5514 - clashtui::tui::tabs::profile::ProfileTab::update_profile_list::hcb464081c4496ca4
at /home/aurora/Workspace/clashtui/clashtui/src/tui/tabs/profile.rs:157:29
19: 0x5636397b3cbe - clashtui::tui::tabs::profile::ProfileTab::new::h68af3592b55229dd
at /home/aurora/Workspace/clashtui/clashtui/src/tui/tabs/profile.rs:55:9
20: 0x5636397fc49f - clashtui::app::App::new::h997aa7cfc8599296
at /home/aurora/Workspace/clashtui/clashtui/src/app.rs:61:27
21: 0x5636398365b5 - clashtui::run::hd5e312b2528e1468
at /home/aurora/Workspace/clashtui/clashtui/src/main.rs:46:28
22: 0x5636398363e9 - clashtui::main::h1a954a3a5488e11c
at /home/aurora/Workspace/clashtui/clashtui/src/main.rs:38:21
23: 0x5636398187fb - core::ops::function::FnOnce::call_once::h8f23315a611ef464
at /home/aurora/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:25
0:5
24: 0x5636397d5bfe - std::sys::backtrace::__rust_begin_short_backtrace::h5adc4c11f7009b22
at /home/aurora/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:15
2:18
25: 0x5636397bd421 - std::rt::lang_start::{{closure}}::h6387c639e356b879
at /home/aurora/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:199:18
26: 0x563639d85520 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::he8388e74a9793a12
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/core/src/ops/function.rs:284:13
27: 0x563639d85520 - std::panicking::try::do_call::h48342abe4f16044f
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40
28: 0x563639d85520 - std::panicking::try::h45f576514b338db1
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19
29: 0x563639d85520 - std::panic::catch_unwind::h4500d81ff06e11c2
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14
30: 0x563639d85520 - std::rt::lang_start_internal::{{closure}}::h37cab7e9dd591bd0
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:168:24
31: 0x563639d85520 - std::panicking::try::do_call::h18dcd6ab68035fe0
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:589:40
32: 0x563639d85520 - std::panicking::try::h2ff15dd92aac3fb5
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panicking.rs:552:19
33: 0x563639d85520 - std::panic::catch_unwind::hffe66ef06337a6dd
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/panic.rs:359:14
34: 0x563639d85520 - std::rt::lang_start_internal::h418648f91f5be3a1
at /rustc/17067e9ac6d7ecb70e50f92c1944e545188d2359/library/std/src/rt.rs:164:5
35: 0x5636397bd407 - std::rt::lang_start::hadd43802366f3613
at /home/aurora/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:198:5
36: 0x56363983900e - main
37: 0x7f0ad5227675 - <unknown>
38: 0x7f0ad5227729 - __libc_start_main
39: 0x5636397abbc5 - _start
40: 0x0 - <unknown>
Additional context
No response