Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BorrowMutError crash in LSP and slint crashes when using (invalid?) init #3725

Open
qarmin opened this issue Oct 21, 2023 · 1 comment
Open
Labels
a:compiler Slint compiler internal (not the codegen, not the parser) bug Something isn't working

Comments

@qarmin
Copy link

qarmin commented Oct 21, 2023

1.3.0 master

thread 'main' panicked at 'already borrowed: BorrowMutError', /home/runner/work/slint/slint/internal/core/model.rs:899:38
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[Info  - 9:36:29 PM] Connection to server got closed. Server will restart.
The Slint Language Server crashed. This is a bug.
Please open an issue on https://github.com/slint-ui/slint/issues

and

/home/rafal/.cargo/bin/cargo run --color=always --bin czkawka_slint
warning: unnecessary trailing semicolon
    --> /home/rafal/Projekty/Rust/czkawka/target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:4753:22
     |
4753 |                      ;
     |                      ^ help: remove this semicolon
     |
     = note: `#[warn(redundant_semicolons)]` on by default

warning: unused arithmetic operation that must be used
    --> /home/rafal/Projekty/Rust/czkawka/target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:4754:22
     |
4754 | /                      ((((({
4755 | |                          * & InnerSelectableTableView_root_35 :: FIELD_OFFSETS . r#root_35_width }
4756 | |                     ) . apply_pin (_self) . get () . get () as f64) - (r#tmp_empty_36_padding . clone () as f64)) as f64) - (r#tmp_empty_36_padding . clone () as f64)...
     | |_______________________________________________________________________________________________________________________________________________________________________^ the arithmetic operation produces a value
     |
     = note: `#[warn(unused_must_use)]` on by default
help: use `let _ = ...` to ignore the resulting value
     |
4754 ~                      let _ = ((((({
4755 |                          * & InnerSelectableTableView_root_35 :: FIELD_OFFSETS . r#root_35_width }
4756 ~                     ) . apply_pin (_self) . get () . get () as f64) - (r#tmp_empty_36_padding . clone () as f64)) as f64) - (r#tmp_empty_36_padding . clone () as f64)); }
     |

warning: `czkawka_slint` (bin "czkawka_slint") generated 2 warnings
    Finished dev [unoptimized + debuginfo] target(s) in 0.34s
     Running `target/debug/czkawka_slint`
thread 'main' panicked at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/model.rs:1171:22:
already mutably borrowed: BorrowError
stack backtrace:
   0: rust_begin_unwind
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/std/src/panicking.rs:595:5
   1: core::panicking::panic_fmt
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/panicking.rs:67:14
   2: core::result::unwrap_failed
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/result.rs:1652:5
   3: core::result::Result<T,E>::expect
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/result.rs:1034:23
   4: core::cell::RefCell<T>::borrow
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/cell.rs:924:9
   5: i_slint_core::model::Repeater<C>::len
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/model.rs:1171:22
   6: czkawka_slint::slint_generatedMainWindow::InnerMainWindow::init::{{closure}}
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:8623:83
   7: core::ops::function::FnOnce::call_once
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/ops/function.rs:250:5
   8: slint::private_unstable_api::set_property_binding::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/api/rs/slint/private_unstable_api.rs:61:30
   9: <F as i_slint_core::properties::Binding<T>>::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:695:9
  10: i_slint_core::properties::Property<T>::set_binding::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:888:28
  11: <F as i_slint_core::properties::BindingCallable>::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:292:9
  12: i_slint_core::properties::alloc_binding_holder::evaluate::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:395:13
  13: i_slint_core::properties::CURRENT_BINDING::<impl i_slint_core::properties::CURRENT_BINDING>::set
             at /home/rafal/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scoped-tls-hkt-0.1.4/src/lib.rs:265:25
  14: i_slint_core::properties::alloc_binding_holder::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:394:9
  15: i_slint_core::properties::PropertyHandle::update::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:578:29
  16: i_slint_core::properties::PropertyHandle::access
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:483:13
  17: i_slint_core::properties::PropertyHandle::update
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:573:22
  18: i_slint_core::properties::Property<T>::get
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:779:18
  19: czkawka_slint::slint_generatedMainWindow::InnerComponent_selectabletableview_5::init::{{closure}}
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:9559:38
  20: core::ops::function::FnOnce::call_once
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/ops/function.rs:250:5
  21: slint::private_unstable_api::set_property_binding::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/api/rs/slint/private_unstable_api.rs:61:30
  22: <F as i_slint_core::properties::Binding<T>>::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:695:9
  23: i_slint_core::properties::Property<T>::set_binding::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:888:28
  24: <F as i_slint_core::properties::BindingCallable>::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:292:9
  25: i_slint_core::properties::alloc_binding_holder::evaluate::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:395:13
  26: i_slint_core::properties::CURRENT_BINDING::<impl i_slint_core::properties::CURRENT_BINDING>::set
             at /home/rafal/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scoped-tls-hkt-0.1.4/src/lib.rs:265:25
  27: i_slint_core::properties::alloc_binding_holder::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:394:9
  28: i_slint_core::properties::PropertyHandle::update::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:578:29
  29: i_slint_core::properties::PropertyHandle::access
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:483:13
  30: i_slint_core::properties::PropertyHandle::update
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:573:22
  31: i_slint_core::properties::Property<T>::get
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:779:18
  32: czkawka_slint::slint_generatedMainWindow::InnerSelectableTableView_root_35::user_init
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:4754:26
  33: czkawka_slint::slint_generatedMainWindow::InnerComponent_selectabletableview_5::user_init
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:9717:14
  34: <czkawka_slint::slint_generatedMainWindow::InnerComponent_selectabletableview_5 as i_slint_core::model::RepeatedItemTree>::init
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:10102:14
  35: i_slint_core::model::Repeater<C>::ensure_updated_impl
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/model.rs:913:21
  36: i_slint_core::model::Repeater<C>::ensure_updated
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/model.rs:887:13
  37: czkawka_slint::slint_generatedMainWindow::InnerMainWindow::init::{{closure}}
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:8736:26
  38: core::ops::function::FnOnce::call_once
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/ops/function.rs:250:5
  39: slint::private_unstable_api::set_property_binding::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/api/rs/slint/private_unstable_api.rs:61:30
  40: <F as i_slint_core::properties::Binding<T>>::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:695:9
  41: i_slint_core::properties::Property<T>::set_binding::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:888:28
  42: <F as i_slint_core::properties::BindingCallable>::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:292:9
  43: i_slint_core::properties::alloc_binding_holder::evaluate::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:395:13
  44: i_slint_core::properties::CURRENT_BINDING::<impl i_slint_core::properties::CURRENT_BINDING>::set
             at /home/rafal/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scoped-tls-hkt-0.1.4/src/lib.rs:265:25
  45: i_slint_core::properties::alloc_binding_holder::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:394:9
  46: i_slint_core::properties::PropertyHandle::update::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:578:29
  47: i_slint_core::properties::PropertyHandle::access
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:483:13
  48: i_slint_core::properties::PropertyHandle::update
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:573:22
  49: i_slint_core::properties::Property<T>::get
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:779:18
  50: czkawka_slint::slint_generatedMainWindow::InnerMainWindow::init::{{closure}}
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:8546:54
  51: core::ops::function::FnOnce::call_once
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/ops/function.rs:250:5
  52: slint::private_unstable_api::set_property_binding::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/api/rs/slint/private_unstable_api.rs:61:30
  53: <F as i_slint_core::properties::Binding<T>>::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:695:9
  54: i_slint_core::properties::Property<T>::set_binding::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:888:28
  55: <F as i_slint_core::properties::BindingCallable>::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:292:9
  56: i_slint_core::properties::alloc_binding_holder::evaluate::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:395:13
  57: i_slint_core::properties::CURRENT_BINDING::<impl i_slint_core::properties::CURRENT_BINDING>::set
             at /home/rafal/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scoped-tls-hkt-0.1.4/src/lib.rs:265:25
  58: i_slint_core::properties::alloc_binding_holder::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:394:9
  59: i_slint_core::properties::PropertyHandle::update::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:578:29
  60: i_slint_core::properties::PropertyHandle::access
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:483:13
  61: i_slint_core::properties::PropertyHandle::update
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:573:22
  62: i_slint_core::properties::Property<T>::get
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:779:18
  63: czkawka_slint::slint_generatedMainWindow::InnerMainWindow::init::{{closure}}
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:8834:171
  64: core::ops::function::FnOnce::call_once
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/ops/function.rs:250:5
  65: slint::private_unstable_api::set_property_binding::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/api/rs/slint/private_unstable_api.rs:61:30
  66: <F as i_slint_core::properties::Binding<T>>::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:695:9
  67: i_slint_core::properties::Property<T>::set_binding::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:888:28
  68: <F as i_slint_core::properties::BindingCallable>::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:292:9
  69: i_slint_core::properties::alloc_binding_holder::evaluate::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:395:13
  70: i_slint_core::properties::CURRENT_BINDING::<impl i_slint_core::properties::CURRENT_BINDING>::set
             at /home/rafal/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scoped-tls-hkt-0.1.4/src/lib.rs:265:25
  71: i_slint_core::properties::alloc_binding_holder::evaluate
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:394:9
  72: i_slint_core::properties::PropertyHandle::update::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:578:29
  73: i_slint_core::properties::PropertyHandle::access
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:483:13
  74: i_slint_core::properties::PropertyHandle::update
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:573:22
  75: i_slint_core::properties::Property<T>::get
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:779:18
  76: czkawka_slint::slint_generatedMainWindow::InnerMainWindow::layout_info
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:9323:42
  77: <czkawka_slint::slint_generatedMainWindow::InnerMainWindow as i_slint_core::item_tree::ItemTree_vtable_mod::ItemTree>::layout_info
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:11664:14
  78: <czkawka_slint::slint_generatedMainWindow::InnerMainWindow as const_field_offset::PinnedDrop>::drop::VT::layout_info
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/item_tree.rs:40:1
  79: i_slint_core::item_tree::ItemTree_vtable_mod::ItemTreeTO::layout_info
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/item_tree.rs:40:1
  80: i_slint_core::window::WindowProperties::layout_constraints
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/window.rs:266:17
  81: <i_slint_backend_winit::winitwindowadapter::WinitWindowAdapter as i_slint_core::window::WindowAdapter>::update_window_properties::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/backends/winit/winitwindowadapter.rs:499:35
  82: i_slint_backend_winit::winitwindowadapter::WinitWindowAdapter::with_window_handle
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/backends/winit/winitwindowadapter.rs:258:9
  83: <i_slint_backend_winit::winitwindowadapter::WinitWindowAdapter as i_slint_core::window::WindowAdapter>::update_window_properties
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/backends/winit/winitwindowadapter.rs:491:9
  84: i_slint_core::window::WindowInner::update_window_properties::{{closure}}
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/window.rs:726:17
  85: i_slint_core::properties::CURRENT_BINDING::<impl i_slint_core::properties::CURRENT_BINDING>::set
             at /home/rafal/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scoped-tls-hkt-0.1.4/src/lib.rs:265:25
  86: i_slint_core::properties::PropertyTracker<DirtyHandler>::evaluate_as_dependency_root
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/properties.rs:1415:17
  87: i_slint_core::window::WindowInner::update_window_properties
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/window.rs:721:9
  88: i_slint_core::window::WindowInner::show
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/window.rs:772:9
  89: i_slint_core::api::Window::show
             at /home/rafal/.cargo/git/checkouts/slint-8153123e5dffa129/c033667/internal/core/api.rs:382:9
  90: <czkawka_slint::slint_generatedMainWindow::MainWindow as i_slint_core::api::ComponentHandle>::show
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:11787:14
  91: <czkawka_slint::slint_generatedMainWindow::MainWindow as i_slint_core::api::ComponentHandle>::run
             at ./target/debug/build/czkawka_slint-086010d2a479d22b/out/main_window.rs:11782:14
  92: czkawka_slint::main
             at ./czkawka_slint_gui/src/main.rs:21:5
  93: core::ops::function::FnOnce::call_once
             at /rustc/cc66ad468955717ab92600c770da8c1601a4ff33/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Process finished with exit code 101

To reproduce compile and run app or show preview in vs code

czkawka_slint_gui.zip

Removing

            init => {
                self.width
            }

fixes problem

@tronical
Copy link
Member

Maybe this is related to #3215

@ogoffart ogoffart added bug Something isn't working a:compiler Slint compiler internal (not the codegen, not the parser) labels Jan 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a:compiler Slint compiler internal (not the codegen, not the parser) bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants