fish-shell / fish-shell

The user-friendly command line shell.

Home Page:https://fishshell.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Crash on vim mode: `/src/input.cpp:367: failed assertion: event_storage_.empty() && "event_storage_ should be empty"`

TonalidadeHidrica opened this issue · comments

The fish shell crashed multiple times. I am not exactly sure what caused the crash, but at least

  • I am using fish-vi-key-bindings.
  • Probably I pressed something like <Esc>F<something>ki.
    • I always type very fast to navigate using vim keybindings, which makes it difficult for me to recall what I have actually typed.

It always have the same assertion error:

error: ./src/input.cpp:367: failed assertion: event_storage_.empty() && "event_storage_ should be empty"
error: Backtrace:
0   /usr/bin/fish(+0x5992a) [0x56144dbc692a]
1   /usr/bin/fish(+0x59f17) [0x56144dbc6f17]
2   /usr/bin/fish(+0xb07c4) [0x56144dc1d7c4]
3   /usr/bin/fish(+0xed51a) [0x56144dc5a51a]
4   /usr/bin/fish(+0xf216f) [0x56144dc5f16f]
5   /usr/bin/fish(+0x12a453) [0x56144dc97453]
6   /usr/bin/fish(+0x12bc46) [0x56144dc98c46]
7   /usr/bin/fish(+0x12bd56) [0x56144dc98d56]
8   /usr/bin/fish(+0x73943) [0x56144dbe0943]
9   /usr/bin/fish(+0xf4169) [0x56144dc61169]
10  /usr/bin/fish(+0xf1512) [0x56144dc5e512]
11  /usr/bin/fish(+0x12a453) [0x56144dc97453]
12  /usr/bin/fish(+0x12bc46) [0x56144dc98c46]
13  /usr/bin/fish(+0x12bd56) [0x56144dc98d56]
14  /usr/bin/fish(+0x73943) [0x56144dbe0943]
15  /usr/bin/fish(+0x73d19) [0x56144dbe0d19]
16  /usr/bin/fish(+0x42b9e) [0x56144dbafb9e]
17  /usr/bin/fish(+0x5504f) [0x56144dbc204f]
18  /usr/bin/fish(+0x65fe0) [0x56144dbd2fe0]
19  /usr/bin/fish(+0x5964b) [0x56144dbc664b]
20  /usr/bin/fish(+0x59ba1) [0x56144dbc6ba1]
21  /usr/bin/fish(+0x5c590) [0x56144dbc9590]
22  /usr/bin/fish(+0x868c6) [0x56144dbf38c6]
23  /usr/bin/fish(+0x8efcd) [0x56144dbfbfcd]
24  /usr/bin/fish(+0x15aef) [0x56144db82aef]
25  /lib/x86_64-linux-gnu/libc.so.6(+0x29d90) [0x7f3b6d7b6d90]
26  __libc_start_main + 128
27  /usr/bin/fish(+0x18595) [0x56144db85595]

(The latter hex values in the stack trace are (of course) always different.)

My operating system is Ubuntu 22.04.4 LTS. I am running fish shells inside tmux. I install and update fish from sudo apt-add-repository ppa:fish-shell/release-3 && sudo apt update && sudo apt install fish. I am using the latest fish version:

❯ fish --version
    echo $version
fish, version 3.7.1
3.7.1

I have many extensions installed, but I do not have a specific reproducing procedure, so I cannot try "clean fish". Also the bug happens very randomly and I cannot stand using those many useful extensions in my everyday use of the fish shell. Sorry to post a vague issue, but I hope it helps to remove a bug of the fish shell. If you have suggestion on how to provide more information (such as enabling debugging mode or more verbose logging, including key types maybe?), please let me know and I am willing to providing them.

If you can install the fish-dbgsym package, I think you'll at least get symbols, though it's pretty clear where this assert is firing.

I'll do that and tell you results once I get them. But after all, asking just in case, is it useful? I guess the next version will be the rewritten-in-Rust release. Now that the code is rewirtten, the bug may not exist in the next release.

a deterministic reproducer would be great. It might be fixed in latest master but we don't know yet. With a reproducer that's easy to test

If you don't have a reproducer, it would be best if you could build and install the latest release. We still have that assertion in the now-rust codebase, so the bug could still be present.

You mean from the master branch instead of 3.7.1 tag?