slint-ui / slint

Slint is a declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps.
https://slint.dev
Other
16.93k stars 568 forks source link

Possible bug in AccessKit dependency #3055

Closed granveoduendes closed 1 year ago

granveoduendes commented 1 year ago

I have found a dependency error in Accesskit. The error occurs when I compile from Linux a Slint example with these characteristics:

Backtrace:

thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/accesskit_consumer-0.15.0/src/tree.rs:274:45
stack backtrace:
   0:     0x55f6a6d096b1 - std::backtrace_rs::backtrace::libunwind::trace::h468530b9ed459a5e
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x55f6a6d096b1 - std::backtrace_rs::backtrace::trace_unsynchronized::h1a2d5b62e76fd25f
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x55f6a6d096b1 - std::sys_common::backtrace::_print_fmt::h260037bf2065d399
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x55f6a6d096b1 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hd7fc81831607cf60
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x55f6a6d38fbf - core::fmt::rt::Argument::fmt::h01afab03bee30eeb
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/core/src/fmt/rt.rs:138:9
   5:     0x55f6a6d38fbf - core::fmt::write::h83c42ba3ca76c4aa
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/core/src/fmt/mod.rs:1094:21
   6:     0x55f6a6d04f97 - std::io::Write::write_fmt::h2430223c04b84a0f
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/io/mod.rs:1714:15
   7:     0x55f6a6d094c5 - std::sys_common::backtrace::_print::h7c08448e622e2b58
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x55f6a6d094c5 - std::sys_common::backtrace::print::h8f55173e6a80d5ad
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x55f6a6d0a9f3 - std::panicking::default_hook::{{closure}}::heb93e2549b3b187f
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/panicking.rs:269:22
  10:     0x55f6a6d0a784 - std::panicking::default_hook::h915abe4b17644eca
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/panicking.rs:288:9
  11:     0x55f6a6d0af79 - std::panicking::rust_panic_with_hook::ha1753497d761687d
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/panicking.rs:705:13
  12:     0x55f6a6d0ae31 - std::panicking::begin_panic_handler::{{closure}}::h94f1c0e8e158230f
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/panicking.rs:595:13
  13:     0x55f6a6d09b16 - std::sys_common::backtrace::__rust_end_short_backtrace::h8f0ed1c8ce3bb685
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/sys_common/backtrace.rs:151:18
  14:     0x55f6a6d0abc2 - rust_begin_unwind
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/panicking.rs:593:5
  15:     0x55f6a5b7fdb3 - core::panicking::panic_fmt::hd946f96734ef59b2
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/core/src/panicking.rs:67:14
  16:     0x55f6a5b7fe43 - core::panicking::panic::h449dd3d7b3644f05
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/core/src/panicking.rs:117:5
  17:     0x55f6a5db01fb - core::option::Option<T>::unwrap::h973db02433c945f3
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/core/src/option.rs:935:21
  18:     0x55f6a5dba3f7 - accesskit_consumer::tree::Tree::new::h1d20456856faacf7
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/accesskit_consumer-0.15.0/src/tree.rs:274:19
  19:     0x55f6a5be3ed8 - accesskit_unix::adapter::Adapter::new::h8ddc239a16114947
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/accesskit_unix-0.5.0/src/adapter.rs:53:20
  20:     0x55f6a5c2896d - accesskit_winit::platform_impl::platform::Adapter::new::ha72d405318eec194
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/accesskit_winit-0.14.1/src/platform_impl/unix.rs:21:23
  21:     0x55f6a5ba0a17 - accesskit_winit::Adapter::with_action_handler::hb632d6355c87b6b7
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/accesskit_winit-0.14.1/src/lib.rs:170:23
  22:     0x55f6a5c5818a - i_slint_backend_winit::accesskit::AccessKitAdapter::new::h0e4456c8b0596150
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/i-slint-backend-winit-1.1.0/accesskit.rs:62:20
  23:     0x55f6a5c8c9a4 - i_slint_backend_winit::winitwindowadapter::WinitWindowAdapter::new::{{closure}}::h1a156b3308bff69d
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/i-slint-backend-winit-1.1.0/winitwindowadapter.rs:162:32
  24:     0x55f6a5c73d92 - alloc::rc::Rc<T>::new_cyclic::h3b9ad30184eba21a
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/alloc/src/rc.rs:461:20
  25:     0x55f6a5c8c298 - i_slint_backend_winit::winitwindowadapter::WinitWindowAdapter::new::h62e664c89f47c860
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/i-slint-backend-winit-1.1.0/winitwindowadapter.rs:147:23
  26:     0x55f6a5bab23d - i_slint_backend_winit::window_factory_fn::hd00d74f57679a6f7
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/i-slint-backend-winit-1.1.0/lib.rs:71:5
  27:     0x55f6a5bab659 - <i_slint_backend_winit::Backend as i_slint_core::platform::Platform>::create_window_adapter::hee06d19453599559
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/i-slint-backend-winit-1.1.0/lib.rs:214:9
  28:     0x55f6a5b98b59 - slint::private_unstable_api::create_window_adapter::{{closure}}::h1183032d2be0e847
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/slint-1.1.0/private_unstable_api.rs:151:49
  29:     0x55f6a5b97b8c - i_slint_core::with_platform::{{closure}}::hc251a753f3c39b93
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/i-slint-core-1.1.0/lib.rs:98:20
  30:     0x55f6a5b983a9 - std::thread::local::LocalKey<T>::try_with::h36c2473cbaa96c65
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/thread/local.rs:270:16
  31:     0x55f6a5b981ae - std::thread::local::LocalKey<T>::with::h0eeb55e511bc2df4
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/thread/local.rs:246:9
  32:     0x55f6a5b976f8 - i_slint_core::with_platform::h2ba808208bcc5b96
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/i-slint-core-1.1.0/lib.rs:97:5
  33:     0x55f6a5b98162 - i_slint_backend_selector::with_platform::h43debd03191c3b22
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/i-slint-backend-selector-1.1.0/lib.rs:82:5
  34:     0x55f6a5b98b2e - slint::private_unstable_api::create_window_adapter::hd3959c9c46d5ab1a
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/slint-1.1.0/private_unstable_api.rs:151:5
  35:     0x55f6a5b8280c - slint_example::slint_generatedHelloWorld::InnerHelloWorld::window_adapter_ref::{{closure}}::h831a34357661ced8
                               at /home/duende/Proyectos/Rust/slint_example/src/main.rs:1:1
  36:     0x55f6a5b92a3c - once_cell::unsync::OnceCell<T>::get_or_try_init::hea4ec5da633b1ead
                               at /home/duende/.cargo/registry/src/index.crates.io-6f17d22bba15001f/once_cell-1.18.0/src/lib.rs:631:23
  37:     0x55f6a5b8ef9c - slint_example::slint_generatedHelloWorld::InnerHelloWorld::window_adapter_ref::h2fe504330acee3a8
                               at /home/duende/Proyectos/Rust/slint_example/src/main.rs:1:1
  38:     0x55f6a5b8fb43 - <slint_example::slint_generatedHelloWorld::HelloWorld as i_slint_core::api::ComponentHandle>::show::h5ae7252d0767999a
                               at /home/duende/Proyectos/Rust/slint_example/src/main.rs:1:1
  39:     0x55f6a5b8f947 - <slint_example::slint_generatedHelloWorld::HelloWorld as i_slint_core::api::ComponentHandle>::run::h3d8b2fd2bd953a0f
                               at /home/duende/Proyectos/Rust/slint_example/src/main.rs:1:1
  40:     0x55f6a5b90d68 - slint_example::main::h795e1f21792a7cc6
                               at /home/duende/Proyectos/Rust/slint_example/src/main.rs:11:5
  41:     0x55f6a5b86e1b - core::ops::function::FnOnce::call_once::hc50343ca3b4fa13a
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/core/src/ops/function.rs:250:5
  42:     0x55f6a5b9149e - std::sys_common::backtrace::__rust_begin_short_backtrace::h80e5b5961de97f95
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/sys_common/backtrace.rs:135:18
  43:     0x55f6a5b8a2e1 - std::rt::lang_start::{{closure}}::ha4efbd787645912e
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/rt.rs:166:18
  44:     0x55f6a6d0027b - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hf86cdf9dc182c5bf
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/core/src/ops/function.rs:284:13
  45:     0x55f6a6d0027b - std::panicking::try::do_call::h1fb257d939dfa1b9
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/panicking.rs:500:40
  46:     0x55f6a6d0027b - std::panicking::try::h9f9497626867927c
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/panicking.rs:464:19
  47:     0x55f6a6d0027b - std::panic::catch_unwind::h205385cd9c8fb83a
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/panic.rs:142:14
  48:     0x55f6a6d0027b - std::rt::lang_start_internal::{{closure}}::he31e89c1bc30ed01
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/rt.rs:148:48
  49:     0x55f6a6d0027b - std::panicking::try::do_call::hd3de1476b284ae29
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/panicking.rs:500:40
  50:     0x55f6a6d0027b - std::panicking::try::hcf26f60b52066bae
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/panicking.rs:464:19
  51:     0x55f6a6d0027b - std::panic::catch_unwind::h8d925d1c832d5aa3
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/panic.rs:142:14
  52:     0x55f6a6d0027b - std::rt::lang_start_internal::hb894aa462905c4fc
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/rt.rs:148:20
  53:     0x55f6a5b8a2ba - std::rt::lang_start::hd02669b3134fb1df
                               at /rustc/0ab38e95bb1cbf0bd038d359bdecbfa501f003a7/library/std/src/rt.rs:165:17
  54:     0x55f6a5b90dde - main
  55:     0x7fd0fe223a90 - __libc_start_call_main
                               at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
  56:     0x7fd0fe223b49 - __libc_start_main_impl
                               at ./csu/../csu/libc-start.c:360:3
  57:     0x55f6a5b80645 - _start
  58:                0x0 - <unknown>

Process finished with exit code 101
ogoffart commented 1 year ago

Tentative fix: https://github.com/slint-ui/slint/pull/3046

ogoffart commented 1 year ago

Workarounds: either of

  1. disable the accessibility features (that is enabled by default)
  2. downgrade the zbus crate with this command: cargo update -p zbus --precise 3.10.0 (or pin it to that version in the Cargo.toml)

But we will make a release soon to fix this issue

ogoffart commented 1 year ago

Fixed in 1.1.1