helix
helix copied to clipboard
thread 'main' panicked at 'Positions [(70, After), (71, Before)] are out of range for changeset len 1!', helix-core/src/transaction.rs:478:9
Summary
Crash while editing
Reproduction Steps
Editing a scratch buffer and pressing esc is the closest I could get to isolate the bug; but this is not deterministic. It happened with 3 vsplits, 2 showing the same file, one with a scratch buffer.
Helix log
~/.cache/helix/helix.log
tail ~/.cache/helix/helix.log
2024-03-07T09:13:53.256 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:53 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:53.256 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:53.375 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:53 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:53.375 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:53.511 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:53 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:53.511 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:53.743 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:53 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:53.743 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:14:32.284 helix_core::syntax [ERROR] TS parser failed, disabling TS for the current buffer: Err(Cancelled)
2024-03-07T10:32:27.009 helix_core::syntax [ERROR] TS parser failed, disabling TS for the current buffer: Err(Cancelled)
q@sirius ~/S/L/pages> tail -50 ~/.cache/helix/helix.log
2024-03-07T09:13:49.127 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:49 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:49.128 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:49.271 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:49 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:49.271 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:49.439 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:49 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:49.439 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:49.567 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:49 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:49.567 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:49.808 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:49 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:49.808 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:49.984 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:49 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:49.984 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:50.080 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:50 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:50.080 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:51.183 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:51 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:51.183 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:51.310 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:51 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:51.310 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:51.391 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:51 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:51.391 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:51.512 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:51 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:51.512 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:51.984 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:51 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:51.984 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:52.056 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:52 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:52.056 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:52.160 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:52 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:52.160 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:52.336 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:52 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:52.336 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:52.456 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:52 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:52.456 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:52.616 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:52 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:52.616 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:52.736 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:52 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:52.736 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:53.024 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:53 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:53.025 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:53.128 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:53 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:53.128 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:53.256 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:53 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:53.256 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:53.375 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:53 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:53.375 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:53.511 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:53 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:53.511 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:13:53.743 helix_lsp::transport [ERROR] ltex err <- "Mar 07, 2024 9:13:53 AM org.bsplines.ltexls.server.DocumentChecker checkAnnotatedTextFragment\n"
2024-03-07T09:13:53.743 helix_lsp::transport [ERROR] ltex err <- "WARNING: Skipping text check as LanguageTool has not been initialized\n"
2024-03-07T09:14:32.284 helix_core::syntax [ERROR] TS parser failed, disabling TS for the current buffer: Err(Cancelled)
2024-03-07T10:32:27.009 helix_core::syntax [ERROR] TS parser failed, disabling TS for the current buffer: Err(Cancelled)```
</details>
### Platform
Linux
### Terminal Emulator
Kitty
### Installation Method
source
### Helix Version
helix 23.10 (b93fae9c)
pleas provide a panic backtrace or this is not actionable, this kind of panic message could be caused by ahyting
I got a similar panic, with a (minimal) stacktrace. Hope this helps.
thread 'main' panicked at 'Positions [(150004, After), (150004, After)] are out of range for changeset len 149909!', helix-core/src/transaction.rs:461:9
stack backtrace:
0: _rust_begin_unwind
1: core::panicking::panic_fmt
2: helix_core::transaction::ChangeSet::update_positions
3: helix_core::selection::Selection::map_no_normalize
4: helix_view::view::View::apply
5: helix_view::document::Document::append_changes_to_history
6: <helix_term::ui::editor::EditorView as helix_term::compositor::Component>::handle_event
7: helix_term::compositor::Compositor::handle_event
8: helix_term::application::Application::run::{{closure}}
9: tokio::runtime::park::CachedParkThread::block_on
10: tokio::runtime::runtime::Runtime::block_on
11: hx::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Version: helix 23.10 (f6021dd0)
Here is one way to reproduce it (current master at commit: 6c4d986).
thread 'main' panicked at 'Positions [(7, Before)] are out of range for changeset len 4!', helix-core/src/transaction.rs:478:9
Test Document
a
b
Steps to Reproduce
- <C-w>s # hsplit
- ]<space> # add_newline_below
- % # select_all
- 2G # goto_line
- ms/ # surround_add
- :rla<ret> # reload_all
- % # select_all
- J # join_selection
This happened to me without using splits. IIRC it started happening after I updated my normal_mode
binding to also add a jumplist entry.
[keys.insert]
C-s = ["normal_mode", ":w", "save_selection"]
esc = ["normal_mode", "save_selection"]
stacktrace:
thread 'main' panicked at 'Positions [(2129, After), (2130, Before)] are out of range for changeset len 2119!', hel
ix-core/src/transaction.rs:478:9
stack backtrace:
0: rust_begin_unwind
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/std/src/panicking.rs:578:5
1: core::panicking::panic_fmt
at /rustc/90c541806f23a127002de5b4038be731ba1458ca/library/core/src/panicking.rs:67:14
2: helix_core::transaction::ChangeSet::update_positions
3: helix_core::selection::Selection::map_no_normalize
4: helix_view::view::View::apply
5: helix_view::document::Document::append_changes_to_history
6: <helix_term::ui::editor::EditorView as helix_term::compositor::Component>::handle_event
7: helix_term::compositor::Compositor::handle_event
8: helix_term::application::Application::run::{{closure}}
9: tokio::runtime::park::CachedParkThread::block_on
10: tokio::runtime::context::runtime::enter_runtime
11: tokio::runtime::runtime::Runtime::block_on
12: hx::main
helix 23.4 6a214af1
I'll try to get a minimal repro.