wez / wezterm

A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
https://wezfurlong.org/wezterm/
Other
17.81k stars 798 forks source link

tmux crashes when using wezterm and open nvim on remote computer via SSH connection #5455

Open fallenbeck opened 5 months ago

fallenbeck commented 5 months ago

What Operating System(s) are you seeing this problem on?

macOS

Which Wayland compositor or X11 Window manager(s) are you using?

No response

WezTerm version

20240520-135708-b8f94c47

Did you try the latest nightly build to see if the issue is better (or worse!) than your current version?

Yes, and I updated the version box above to show the version of the nightly that I tried

Describe the bug

My default setup is using tmux (currently version 3.4) within wezterm.

All tmux sessions crash (the tmux server crashes) when I connect to a remote macOS machine and start nvim (v0.10.0, installed via Homebrew). The tmux error message is simply:

[server exited unexpectedly]

When using vim (9.0.2142, installed via Homebrew on macOS) or using nvim (v0.7.2) resp. vim (9.0.1499) on a remote debian (Linux) machine everything works well.

If I do not use tmux within wezterm I can also use nvim on the remote macOS machine without any problems. If I use tmux in another Terminal application (like alacritty, kitty, or Terminal.app) no problems exist. That is the reason why I open the issue here.

To Reproduce

  1. Open wezterm
  2. tmux
  3. `ssh $MACOS_MACHINE
  4. nvim

Configuration

no config/config independent (happens even without a config file)

Expected Behavior

nvim should open, tmux server should continue running normally

Logs

10:25:48.741 INFO wezterm_gui::termwindow > QuitApplication over here (window)

Anything else?

The last lines of tmux-server-$ID.log are:

1716366626.463463 @0 active pane changed
1716366626.463469 @0 name timer already queued (102209 left)
1716366626.466650 cmdq_next <global>: empty
1716366626.466681 cmdq_next </dev/ttys000>: empty
1716366626.466693 server_client_reset_state: client /dev/ttys000 mode CURSOR,KCURSOR,KKEYPAD,WRAP,BRACKETPASTE
1716366626.466701 server_client_reset_state: cursor to 0,0
1716366626.466710 server_client_check_pane_buffer: pane %0 is on
1716366626.466718 @0 active pane changed
1716366626.466724 @0 name timer already queued (98954 left)
1716366626.506285 %0 has 7 bytes
1716366626.506322 @0 alerts timer reset 0
1716366626.506333 screen_write_start_pane: size 318x87, pane %0 (at 0,0)
1716366626.506341 input_parse_buffer: %0 ground, 7 bytes: \033]11;?\a
1716366626.506348 input_enter_osc
1716366626.506356 input_end_bel
1716366626.506362 input_exit_osc: "11;?" (end BEL)
1716366626.506371 input_reply: \033]11;rgb:2828/2828/2828\a
1716366626.506380 screen_write_collect_flush: flushed 0 items (screen_write_stop)
1716366626.506388 cmdq_next <global>: empty
1716366626.506395 cmdq_next </dev/ttys000>: empty
1716366626.506403 server_client_reset_state: client /dev/ttys000 mode CURSOR,KCURSOR,KKEYPAD,WRAP,BRACKETPASTE
1716366626.506410 server_client_reset_state: cursor to 0,0
1716366626.506419 server_client_check_pane_buffer: %0 has 7 minimum (of 7) bytes used
1716366626.506425 server_client_check_pane_buffer: pane %0 is on
1716366626.506433 @0 active pane changed
1716366626.506444 @0 name timer already queued (59234 left)
1716366626.506465 cmdq_next <global>: empty
1716366626.506472 cmdq_next </dev/ttys000>: empty
1716366626.506480 server_client_reset_state: client /dev/ttys000 mode CURSOR,KCURSOR,KKEYPAD,WRAP,BRACKETPASTE
1716366626.506486 server_client_reset_state: cursor to 0,0
1716366626.506493 server_client_check_pane_buffer: pane %0 is on
1716366626.506499 @0 active pane changed
1716366626.506505 @0 name timer already queued (59173 left)
1716366626.517396 %0 has 71 bytes
1716366626.517435 @0 alerts timer reset 0
1716366626.517457 screen_write_start_pane: size 318x87, pane %0 (at 0,0)
1716366626.517467 input_parse_buffer: %0 ground, 71 bytes: \033P+q5463;524742;73657472676266;73657472676262\033\\\033[0m\033[48;2;1;2;3m\033P$qm\033\\
1716366626.517475 input_enter_dcs
1716366626.517488 input_csi_dispatch: 'm' "" "0"
1716366626.517495 parameter 0: number 0
1716366626.517503 input_csi_dispatch: 'm' "" "48;2;1;2;3"
1716366626.517510 parameter 0: number 48
1716366626.517515 parameter 1: number 2
1716366626.517521 parameter 2: number 1
1716366626.517526 parameter 3: number 2
1716366626.517532 parameter 4: number 3
1716366626.517538 input_enter_dcs
1716366626.517546 screen_write_collect_flush: flushed 0 items (screen_write_sixelimage)
1716366626.517557 tty_cmd_sixelimage: image is 1x1
1716366626.517563 tty_cmd_sixelimage: clamping to 0,0-1,1
1716366626.517582 fatal: xcalloc: zero size
fallenbeck commented 5 months ago

This nvim issue seems to be related: https://github.com/neovim/neovim/issues/28827

fallenbeck commented 5 months ago

And this tmux issue as well - seems to be fixed there: https://github.com/tmux/tmux/issues/3983