Tmux가 tty_clamp_area와 충돌함

Tmux가 tty_clamp_area와 충돌함

개발 환경으로 tmux를 사용합니다. 상단에 vim이 있고 아래에 세 개의 창이 있는 표준 분할이 있습니다. npm start하나는 nodejs 백엔드를 실행하고 다른 하나는 git status.

Tmux는 가끔 뚜렷한 이유 없이 충돌이 발생하는 것 같지만 오늘은 재현 가능한 방식으로 충돌이 발생했습니다.

npx nodemon한 창에서 실행 중이고 git status다른 tmux에서는 충돌하는 것 같습니다 .tty_clamp_area: y too big, [insert big number] > 0

이것은 내 로그입니다:

tmux-client.log

1558350586.729364 sending message 105 to peer 0x55c5491caa80 (21 bytes)
1558350586.729373 sending message 105 to peer 0x55c5491caa80 (12 bytes)
1558350586.729383 sending message 105 to peer 0x55c5491caa80 (47 bytes)
1558350586.729392 sending message 105 to peer 0x55c5491caa80 (8 bytes)
1558350586.729402 sending message 105 to peer 0x55c5491caa80 (35 bytes)
1558350586.729411 sending message 105 to peer 0x55c5491caa80 (39 bytes)
1558350586.729421 sending message 105 to peer 0x55c5491caa80 (23 bytes)
1558350586.729430 sending message 105 to peer 0x55c5491caa80 (13 bytes)
1558350586.729439 sending message 105 to peer 0x55c5491caa80 (26 bytes)
1558350586.729452 sending message 105 to peer 0x55c5491caa80 (11 bytes)
1558350586.729462 sending message 105 to peer 0x55c5491caa80 (10 bytes)
1558350586.729472 sending message 106 to peer 0x55c5491caa80 (0 bytes)
1558350586.729482 cmd_pack_argv: argv[0]=new
1558350586.729492 cmd_pack_argv: argv[1]=-s
1558350586.729500 cmd_pack_argv: argv[2]=Scope
1558350586.729510 sending message 200 to peer 0x55c5491caa80 (17 bytes)
1558350586.729519 client loop enter
1558350586.751533 peer 0x55c5491caa80 message 207
1558350586.751544 sending message 208 to peer 0x55c5491caa80 (0 bytes)
1558350616.843871 client loop exit

tmux-server.log

1558350616.752814 format_replace: replaced 'W:#[range=window|#{window_index} #{window-status-style}#{?#{&&:#{window_last_flag},#{!=:#{window-status-last-style},default}}, #{window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{window-status-bell-style},default}}, #{window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{window-status-activity-style},default}}, #{window-status-activity-style},}}]#{T:window-status-format}#[norange default]#{?window_end_flag,,#{window-status-separator}},#[range=window|#{window_index} list=focus #{?#{!=:#{window-status-current-style},default},#{window-status-current-style},#{window-status-style}}#{?#{&&:#{window_last_flag},#{!=:#{window-status-last-style},default}}, #{window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{window-status-bell-style},default}}, #{window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{window-status-activity-style},default}}, #{window-status-activity-style},}}]#{T:window-status-current-format}#[norange list=on default]#{?window_end_flag,,#{window-status-separator}}' with '#[range=window|1 list=focus fg=colour39]#[bold]1 zsh#[norange list=on default]'
1558350616.752820 format_expand1: found #{}: status-right-style
1558350616.752823 format_replace: format 'status-right-style' found: default
1558350616.752826 format_replace: replaced 'status-right-style' with 'default'
1558350616.752829 format_expand1: found #{}: T;=/#{status-right-length}:status-right
1558350616.752832 format_expand1: expanding format: #{status-right-length}
1558350616.752834 format_expand1: found #{}: status-right-length
1558350616.752837 format_replace: format 'status-right-length' found: 150
1558350616.752840 format_replace: replaced 'status-right-length' with '150'
1558350616.752842 format_expand1: result is: 150
1558350616.752845 format_replace: modifier 0 is T
1558350616.752847 format_replace: modifier 1 is =
1558350616.752849 format_replace: modifier 1 argument 0: 150
1558350616.752853 format_replace: format 'status-right' found: #[fg=colour241] %R %d %b #[fg=colour154,bold]#h
1558350616.752856 format_expand1: expanding format: #[fg=colour241] %R %d %b #[fg=colour154,bold]#h
1558350616.752861 format_expand1: after time expanded: #[fg=colour241] 12:10 20 May #[fg=colour154,bold]#h
1558350616.752864 format_expand1: found #h: host_short
1558350616.752869 format_replace: format 'host_short' found: frankenstein
1558350616.752871 format_replace: replaced 'host_short' with 'frankenstein'
1558350616.752874 format_expand1: result is: #[fg=colour241] 12:10 20 May #[fg=colour154,bold]frankenstein
1558350616.752877 format_replace: applied length limit 150: #[fg=colour241] 12:10 20 May #[fg=colour154,bold]frankenstein
1558350616.752880 format_replace: replaced 'T;=/#{status-right-length}:status-right' with '#[fg=colour241] 12:10 20 May #[fg=colour154,bold]frankenstein'
1558350616.752887 format_expand1: result is: #[align=left range=left default]#[fg=colour154,bold] Scope #[norange default]#[list=on align=left]#[list=left-marker]<#[list=right-marker]>#[list=on]#[range=window|1 list=focus fg=colour39]#[bold]1 zsh#[norange list=on default]#[nolist align=right range=right default]#[fg=colour241] 12:10 20 May #[fg=colour154,bold]frankenstein#[norange default]
1558350616.752890 screen_write_collect_flush: flushed 0 items (0 bytes)
1558350616.752893 screen_write_stop: 0 cells (0 written, 0 skipped)
1558350616.752904 unref client 0x55c549201e30 (2 references)
1558350616.752907 status_redraw exit: force=0, changed=0
1558350616.752911 screen_redraw_set_context: /dev/pts/1 @0 ox=0 oy=0 sx=209 sy=56 1/0
1558350616.752914 /dev/pts/1: redraw added 0 bytes
1558350616.752918 @0 active pane changed
1558350616.752920 @0 name timer already queued (371885 left)
1558350616.780224 %2 has 76 bytes
1558350616.780243 @0 alerts timer reset 0
1558350616.780248 screen_write_start: size 69x12, pane %2 (at 70,45)
1558350616.780254 input_parse: %2 ground, 76 bytes: [..................] / rollbackFailedOptional: verb npm-session 5e24\033[0m\033[K\r
1558350616.780261 screen_write_collect_end: 68 [..................] / rollbackFailedOptional: verb npm-session 5e24 (at 0,5)
1558350616.780267 input_csi_dispatch: 'm' "" "0"
1558350616.780271 parameter 0: number 0
1558350616.780275 input_csi_dispatch: 'K' "" ""
1558350616.780302 input_c0_dispatch: '\r'
1558350616.780309 /dev/pts/1: \033[51;71H
1558350616.780317 /dev/pts/1: [..................] / rollbackFailedOptional: verb npm-session 5e24
1558350616.780321 screen_write_collect_flush: flushed 1 items (68 bytes)
1558350616.780323 screen_write_stop: 68 cells (68 written, 0 skipped)
1558350616.780327 cmdq_next <global>: empty
1558350616.780330 cmdq_next <0x55c549201e30>: empty
1558350616.780334 /dev/pts/1: \033[57;141H
1558350616.780339 @0 active pane changed
1558350616.780342 @0 name timer already queued (344463 left)
1558350616.780354 /dev/pts/1: wrote 85 bytes (of 85)
1558350616.780356 cmdq_next <global>: empty
1558350616.780358 cmdq_next <0x55c549201e30>: empty
1558350616.780370 @0 active pane changed
1558350616.780372 @0 name timer already queued (344432 left)
1558350616.790477 cmdq_next <global>: empty
1558350616.790499 cmdq_next <0x55c549201e30>: empty
1558350616.790506 @0 active pane changed
1558350616.790509 @0 name timer already queued (334297 left)
1558350616.830635 %2 has 76 bytes
1558350616.830651 @0 alerts timer reset 0
1558350616.830657 screen_write_start: size 69x12, pane %2 (at 70,45)
1558350616.830664 input_parse: %2 ground, 76 bytes: [..................] / rollbackFailedOptional: verb npm-session 5e24\033[0m\033[K\r
1558350616.830670 screen_write_collect_end: 68 [..................] / rollbackFailedOptional: verb npm-session 5e24 (at 0,5)
1558350616.830676 input_csi_dispatch: 'm' "" "0"
1558350616.830680 parameter 0: number 0
1558350616.830683 input_csi_dispatch: 'K' "" ""
1558350616.830686 input_c0_dispatch: '\r'
1558350616.830693 /dev/pts/1: \033[51;71H
1558350616.830701 /dev/pts/1: [..................] / rollbackFailedOptional: verb npm-session 5e24
1558350616.830705 screen_write_collect_flush: flushed 1 items (68 bytes)
1558350616.830708 screen_write_stop: 68 cells (68 written, 0 skipped)
1558350616.830711 cmdq_next <global>: empty
1558350616.830714 cmdq_next <0x55c549201e30>: empty
1558350616.830718 /dev/pts/1: \033[57;141H
1558350616.830723 @0 active pane changed
1558350616.830726 @0 name timer already queued (294079 left)
1558350616.830737 /dev/pts/1: wrote 85 bytes (of 85)
1558350616.830748 cmdq_next <global>: empty
1558350616.830751 cmdq_next <0x55c549201e30>: empty
1558350616.830753 @0 active pane changed
1558350616.830755 @0 name timer already queued (294050 left)
1558350616.840848 cmdq_next <global>: empty
1558350616.840874 cmdq_next <0x55c549201e30>: empty
1558350616.840889 @0 active pane changed
1558350616.840892 @0 name timer already queued (283914 left)
1558350616.842926 %3 has 338 bytes
1558350616.842942 @0 alerts timer reset 0
1558350616.842948 screen_write_start: size 69x12, pane %3 (at 140,45)
1558350616.842991 input_parse: %3 ground, 338 bytes: \r\033[0m\033[27m\033[24m\033[J\r\n\342\224\214\342\224\200\033[39m\033[0m\033[49m\033[48;5;250m \033[38;5;24m\357\205\274 \033[48;5;24m\033[38;5;250m\356\202\260 \033[38;5;250m\357\201\274 \033[38;5;250m\342\200\246/src/Frontend \033[48;5;172m\033[38;5;24m\356\202\260 \033[38;5;233m\357\204\223  \033[38;5;233m\357\204\246 development \357\201\252 \033[49m\033[38;5;172m\356\202\260\033[39m \r\n\342\224\202\r\n\342\224\224\342\236\244 \033[K\033[62C\033[1A\033[39m\033[0m\033[49m\033[30m\356\202\262\033[39m\033[40m\033[32m \033[32m\342\234\224\033[K\033[00m\033[1B\033[39m\033[49m\033[65D\033[?2004h
1558350616.842996 input_c0_dispatch: '\r'
1558350616.843000 input_csi_dispatch: 'm' "" "0"
1558350616.843004 parameter 0: number 0
1558350616.843008 input_csi_dispatch: 'm' "" "27"
1558350616.843010 parameter 0: number 27
1558350616.843013 input_csi_dispatch: 'm' "" "24"
1558350616.843015 parameter 0: number 24
1558350616.843017 input_csi_dispatch: 'J' "" ""
1558350616.843021 screen_write_collect_flush: flushed 0 items (0 bytes)
1558350616.843028 /dev/pts/1: \033[46;57r
1558350616.843034 fatal: tty_clamp_area: y too big, 4294967295 > 0

편집: 좋습니다. 문제가 실제로 일관된 것 같습니다.

재현 단계:

  • 달리기tmux

  • 수직 분할(상단 및 하단 창)

  • ~에 따르면<mod>alt+3

  • 터미널이 스크롤을 시작할 때까지 아래쪽 창에서 명령을 실행합니다.

저는 tmux 2.9a와 termite v15를 사용하고 있습니다.

답변1

tmux 버그를 보고하는 것은 현명하지 못한 장소처럼 보이지만, 그럼에도 불구하고 문제는 다음 커밋으로 해결되어야 합니다.https://github.com/tmux/tmux/commit/38b8a198bac62c16d351c54ed83ead29a2e0ecc8

관련 정보