zellij-org / zellij

A terminal workspace with batteries included
https://zellij.dev
MIT License
21.96k stars 667 forks source link

Crash when decreasing size of pane #3623

Open 2Kaleb opened 2 months ago

2Kaleb commented 2 months ago

Issues with the Zellij crash

Issue description

Scenario: Window open with about 9 panes in base mode

Attempted to decrease size of a corner pane with Alt - multiple times --> Crash

Minimal reproduction

zellij.log

Other relevant information

Terminal: st 0.9 zellij 0.40.1 (installed from conda-forge)

imsnif commented 2 months ago

The stack trace, as reported by @2Kaleb on Discord:

Error occurred in server:

  × Thread 'screen' panicked.
  ├─▶ Originating Thread(s)
  │     1. stdin_handler_thread: AcceptInput
  │     2. screen_thread: ResizeDecreaseAll
  │
  ├─▶ At zellij-server/src/tab/mod.rs:2108:44
  ╰─▶ Program terminates: a fatal error occured

      Caused by:
          0: failed to decrease size on every border for active tiled pane for client 1
          1: failed to decrease size on every border by (5.0, 5.0) for pane Terminal(25)
          2: failed to decrease size on right border by (5.0, 5.0) for pane Terminal(25)
          3: Ran out of room for spans
  help: If you are seeing this message, it means that something went wrong.

        -> To get additional information, check the log at: /tmp/zellij-876/zellij-log/zellij.log
        -> To see a backtrace next time, reproduce the error with: RUST_BACKTRACE=1 zellij [...]
        -> To help us fix this, please open an issue: https://github.com/zellij-org/zellij/issues
eliasp commented 1 month ago

Saw this happen today with zellij 0.40.1:

Error occurred in server:

  × Thread 'screen' panicked.
  ├─▶ Originating Thread(s)
  │     1. stdin_handler_thread: AcceptInput
  │     2. screen_thread: ResizeIncreaseAll
  │
  ├─▶ At zellij-server/src/tab/mod.rs:2108:44
  ╰─▶ Program terminates: a fatal error occured

      Caused by:
          0: failed to increase size on every border for active tiled pane for client 1
          1: failed to increase size on every border by (5.0, 5.0) for pane Terminal(0)
          2: failed to increase size on right border by (5.0, 5.0) for pane Terminal(0)
          3: Ran out of room for spans

      Stack backtrace:
         0: zellij_server::panes::tiled_panes::pane_resizer::PaneResizer::layout
         1: zellij_server::panes::tiled_panes::tiled_pane_grid::TiledPaneGrid::change_pane_size
         2: zellij_server::panes::tiled_panes::tiled_pane_grid::TiledPaneGrid::change_pane_size
         3: zellij_server::tab::Tab::resize
         4: zellij_server::screen::screen_thread_main
         5: std::sys_common::backtrace::__rust_begin_short_backtrace
         6: core::ops::function::FnOnce::call_once{{vtable.shim}}
         7: std::sys::pal::unix::thread::Thread::new::thread_start
         8: start_thread
         9: __GI___clone3

      Panic backtrace:
         0: <zellij_utils::errors::not_wasm::Panic as core::fmt::Display>::fmt
         1: miette::handlers::graphical::GraphicalReportHandler::render_causes
         2: zellij_utils::errors::not_wasm::fmt_report
         3: zellij_utils::errors::not_wasm::handle_panic
         4: std::panicking::rust_panic_with_hook
         5: std::panicking::begin_panic_handler::{{closure}}
         6: std::sys_common::backtrace::__rust_end_short_backtrace
         7: rust_begin_unwind
         8: core::panicking::panic_fmt
         9: core::result::unwrap_failed
        10: zellij_server::tab::Tab::resize
        11: zellij_server::screen::screen_thread_main
        12: std::sys_common::backtrace::__rust_begin_short_backtrace
        13: core::ops::function::FnOnce::call_once{{vtable.shim}}
        14: std::sys::pal::unix::thread::Thread::new::thread_start
        15: start_thread
        16: __GI___clone3

zellij.log

imsnif commented 1 month ago

Thanks @eliasp - this was addressed in #3659 and will be released in the next version. No ETA yet unfortunately.