tmux-python/tmuxp

Tiled layouts are broken in 1.13.1

ApexWeed opened this issue · 5 comments

Step 1: Provide a summary of your problem

  • Tiled layouts no longer work after the changes in #793

Step 2: Provide tmuxp details

tmuxp debug-info output: https://pastebin.com/GGTi9HnT

Step 3: Describe the problem:

Only the first column of tiled layouts are created as tmux ran out of space.

Steps to reproduce:

  1. Run included yaml config
  2. tmuxp crashes

Observed Results:

  • 1x4 layout is created and tmuxp crashes.
Traceback (most recent call last):
  File "/usr/bin/tmuxp", line 8, in <module>
    sys.exit(cli.cli())
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/lib/python3.10/site-packages/tmuxp/cli/load.py", line 573, in command_load
    load_workspace(config[-1], **tmux_options)
  File "/usr/lib/python3.10/site-packages/tmuxp/cli/load.py", line 418, in load_workspace
    _load_attached(builder, detached)
  File "/usr/lib/python3.10/site-packages/tmuxp/cli/load.py", line 159, in _load_attached
    builder.build()
  File "/usr/lib/python3.10/site-packages/tmuxp/workspacebuilder.py", line 268, in build
    for p, pconf in self.iter_create_panes(w, wconf):
  File "/usr/lib/python3.10/site-packages/tmuxp/workspacebuilder.py", line 420, in iter_create_panes
    p = w.split_window(
  File "/usr/lib/python3.10/site-packages/libtmux/window.py", line 533, in split_window
    raise exc.LibTmuxException(pane_cmd.stderr, self._info, self.panes)
libtmux.exc.LibTmuxException: (['no space for new pane'], {'session_name': 'bash', 'session_id': '$0', 'window_id': '@1', 'window_name': 'tui', 'window_width': '80', 'window_height': '24', 'window_layout': 'b25e,80x24,0,0,1', 'window_panes': '1', 'window_index': '0', 'window_flags': '*', 'window_active': '1', 'window_bell_flag': '0', 'window_activity_flag': '0', 'window_silence_flag': '0'}, [Pane(%1 Window(@1 0:tui, Session($0 bash))), Pane(%2 Window(@1 0:tui, Session($0 bash))), Pane(%3 Window(@1 0:tui, Session($0 bash))), Pane(%4 Window(@1 0:tui, Session($0 bash)))])

Works correctly in 1.13.0.

Expected Results:

  • 3x4 layout is created.

Relevant Code:

session_name: bash
start_directory: ~/conf
shell_command_before: export TERM=xterm-256color
windows:
- window_name: tui
  layout: tiled
  panes:
    - bash
    - bash
    - bash
    - bash
    - bash
    - bash
    - bash
    - bash
    - bash
    - bash
    - bash
    - bash
tony commented

Is it possible if you could make a video of 1.13.0 vs 1.13.1?

(Not required, but helps differentiate if this issue needs to be tackled independently from #800)

No problem at all.

20220829131435227.mp4

Changed it to echo the pane numbers but otherwise config is the same.

tony commented

@ApexWeed P.S. does your tmux(1) / .tmux.conf config have a default-size, or do you always have a tmux client attached when loading tmuxp sessions?

@tony No default-size is specified anywhere. Noticed this originally via systemd units failing but happens regardless of a client being attached.

For reference, a master service unit with /usr/bin/tmux new-session -s master -d as ExecStart and then each session is just another service unit with /usr/bin/tmuxp load <config>.

When recording the repro all other tmux sessions had been killed beforehand so it doesn't appear it matters whether the server is running already or not.

tony commented

@ApexWeed I am going to close this as a duplicate of #806. If you think there's more to the situation or it differs, please let me know! (and Thank you again for the report!)