DefGuard / client

Best WireGuard desktop client with Multi-Factor Authentication
66 stars 9 forks source link

Crash on Startup with Tauri "No such file or directory" Error on Linux Before/After Rust Installation #214

Open ArthoPacini opened 3 months ago

ArthoPacini commented 3 months ago

Issue Description

After initially experiencing a crash with the defguard-client-linux-x86_64-v0.2.1 binary on Linux, I proceeded to install Rust in an attempt to resolve the issue. Unfortunately, the application still crashes shortly after startup with a similar error related to a missing file or directory associated with Tauri.

Steps to Reproduce

  1. Download the defguard-client-linux-x86_64-v0.2.1 binary from the https://github.com/DefGuard/client/releases/tag/v0.2.1.
  2. Make the binary executable: chmod +x defguard-client-linux-x86_64-v0.2.1
  3. Install Rust using the official installation method (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh).
  4. Run the binary with Rust backtrace enabled: RUST_BACKTRACE=1 ./defguard-client-linux-x86_64-v0.2.1

Expected Behavior

The application should start without crashing, or at least provide a more descriptive error message that could help in troubleshooting the issue.

Actual Behavior

Despite the Rust installation, the application crashes with a similar Tauri-related error as before. The detailed backtrace provided by Rust does not offer clear insight into the cause of the problem:

[2024-03-07][02:27:15][INFO][defguard_client::database] Created app data dir at: /home/username/.local/share/net.defguard
... [additional logs] ...
[2024-03-07][02:27:15][INFO][defguard_client] Starting main app thread.
[2024-03-07][02:27:15][INFO][defguard_client] Database info result: Ok((),)
thread 'main' panicked at src/bin/defguard-client.rs:156:69:
called `Result::unwrap()` on an `Err` value: Tauri(Io(Os { code: 2, kind: NotFound, message: "No such file or directory" }))
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
   3: defguard_client::main::{{closure}}
   4: tokio::runtime::context::runtime::enter_runtime
   5: tokio::runtime::runtime::Runtime::block_on
   6: defguard_client::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Environment

Additional Context

This issue persists even after Rust installation and occurs immediately upon startup, with no interaction from the user. The error seems related to Tauri, indicating the application is looking for a file or directory that does not exist or is not accessible.

I would greatly appreciate any advice on resolving this issue or any further steps I should take to enable a successful startup of defguard-client.

backtrace full:

RUST_BACKTRACE=full ./defguard-client-linux-x86_64-v0.2.1
[2024-03-07][02:32:43][INFO][tracing::span] perform;
[2024-03-07][02:32:43][INFO][zbus::handshake] write_command; command=Auth(Some(External), Some([49, 48, 48, 48]))
[2024-03-07][02:32:43][INFO][tracing::span] read_command;
[2024-03-07][02:32:43][INFO][zbus::handshake] write_command; command=NegotiateUnixFD
[2024-03-07][02:32:43][INFO][tracing::span] read_command;
[2024-03-07][02:32:43][INFO][zbus::handshake] write_command; command=Begin
[2024-03-07][02:32:43][INFO][zbus::connection] start_object_server; started_event=Some(Event { .. })
[2024-03-07][02:32:43][INFO][zbus::connection] {}; obj_server_task_name="ObjectServer task"
[2024-03-07][02:32:43][INFO][tracing::span] socket reader;
[2024-03-07][02:32:43][INFO][defguard_client::database] Created app data dir at: /home/username/.local/share/net.defguard
[2024-03-07][02:32:43][INFO][defguard_client::database] Database exists skipping creating database. Database path: /home/username/.local/share/net.defguard/defguard.db
[2024-03-07][02:32:43][INFO][defguard_client::database] Applied migrations.
[2024-03-07][02:32:43][INFO][defguard_client] Database initialization completed
[2024-03-07][02:32:43][INFO][defguard_client] Starting main app thread.
[2024-03-07][02:32:43][INFO][defguard_client] Database info result: Ok(
    (),
)
thread 'main' panicked at src/bin/defguard-client.rs:156:69:
called `Result::unwrap()` on an `Err` value: Tauri(Io(Os { code: 2, kind: NotFound, message: "No such file or directory" }))
stack backtrace:
   0:     0x560a157e6c3c - std::backtrace_rs::backtrace::libunwind::trace::ha69d38c49f1bf263
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x560a157e6c3c - std::backtrace_rs::backtrace::trace_unsynchronized::h93125d0b85fd543c
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x560a157e6c3c - std::sys_common::backtrace::_print_fmt::h8d65f438e8343444
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:67:5
   3:     0x560a157e6c3c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h41751d2af6c8033a
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x560a158167bc - core::fmt::rt::Argument::fmt::h5db2f552d8a28f63
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/fmt/rt.rs:138:9
   5:     0x560a158167bc - core::fmt::write::h99465148a27e4883
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/fmt/mod.rs:1114:21
   6:     0x560a157e1c7e - std::io::Write::write_fmt::hee8dfd57bd179ab2
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/io/mod.rs:1763:15
   7:     0x560a157e6a24 - std::sys_common::backtrace::_print::h019a3cee3e814da4
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x560a157e6a24 - std::sys_common::backtrace::print::h55694121c2ddf918
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x560a157e8113 - std::panicking::default_hook::{{closure}}::h29cbe3da3891b0b0
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:272:22
  10:     0x560a157e7e34 - std::panicking::default_hook::h881e76b2b8c74280
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:292:9
  11:     0x560a157e8695 - std::panicking::rust_panic_with_hook::hcc36e25b6e33969c
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:731:13
  12:     0x560a157e8591 - std::panicking::begin_panic_handler::{{closure}}::ha415efb0f69f41f9
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:609:13
  13:     0x560a157e7166 - std::sys_common::backtrace::__rust_end_short_backtrace::h395fe90f99451e4e
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:170:18
  14:     0x560a157e82e2 - rust_begin_unwind
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
  15:     0x560a14777945 - core::panicking::panic_fmt::h452a83e54ecd764e
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
  16:     0x560a14777e23 - core::result::unwrap_failed::hed0fccbe07e724fc
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
  17:     0x560a1487527e - defguard_client::main::{{closure}}::h4c8420f1766a04be
  18:     0x560a14867896 - tokio::runtime::context::runtime::enter_runtime::h6a321ca0649d8efd
  19:     0x560a14a4969e - tokio::runtime::runtime::Runtime::block_on::h27771903b1ee2700
  20:     0x560a148a8a88 - defguard_client::main::h1665a16023b99c4c
  21:     0x560a1496fbf3 - std::sys_common::backtrace::__rust_begin_short_backtrace::hdfba4fa444705432
  22:     0x560a14a21019 - std::rt::lang_start::{{closure}}::hc25c1146528099eb
  23:     0x560a157db18b - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h14c5f6d1cd70a60f
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/ops/function.rs:284:13
  24:     0x560a157db18b - std::panicking::try::do_call::h2d02374ca451446a
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:504:40
  25:     0x560a157db18b - std::panicking::try::h9f7922394bf57392
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:468:19
  26:     0x560a157db18b - std::panic::catch_unwind::ha1600f9dd4ee7270
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panic.rs:142:14
  27:     0x560a157db18b - std::rt::lang_start_internal::{{closure}}::hfbd80e7d681b21a1
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/rt.rs:148:48
  28:     0x560a157db18b - std::panicking::try::do_call::heacaa33dbdaa16e0
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:504:40
  29:     0x560a157db18b - std::panicking::try::h637875f7c9db85ea
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:468:19
  30:     0x560a157db18b - std::panic::catch_unwind::h4caa9c0c78cb4c19
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panic.rs:142:14
  31:     0x560a157db18b - std::rt::lang_start_internal::h2d6a60ec944b523d
                               at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/rt.rs:148:20
  32:     0x560a148a8b65 - main
  33:     0x7f8dd9028150 - __libc_start_call_main
                               at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
  34:     0x7f8dd9028209 - __libc_start_main_impl
                               at ./csu/../csu/libc-start.c:360:3
  35:     0x560a147782d1 - _start
  36:                0x0 - <unknown>