Skip to content

Builder: Race conditions after #796 / strict mypy #856

@tony

Description

@tony

strict mypy #796 makes certain uncovered loading scenarios error

  • tmuxp load when session already exists
  • Launching a new tmux server with default socket path and socket name
eduflow is already running. Attach? [Y/n] y Traceback (most recent call last): File "/home/d/.cache/pypoetry/virtualenvs/tmuxp-m3jEKDEh-py3.11/bin/tmuxp", line 6, in <module> sys.exit(cli.cli()) ^^^^^^^^^ File "~/projects/python/tmuxp/src/tmuxp/cli/__init__.py", line 134, in cli command_load( File "~/projects/python/tmuxp/src/tmuxp/cli/load.py", line 640, in command_load load_workspace( File "~/projects/python/tmuxp/src/tmuxp/cli/load.py", line 416, in load_workspace _reattach(builder) File "~/projects/python/tmuxp/src/tmuxp/cli/load.py", line 161, in _reattach assert builder.session is not None ^^^^^^^^^^^^^^^ AttributeError: 'WorkspaceBuilder' object has no attribute 'session' 

Declone to loading existing session

❯ tmuxp load ~/work/python/libvcs [Loading] ~/projects/python/libvcs/.tmuxp.yaml Already inside TMUX, switch to session? yes/no Or (a)ppend windows in the current active session? [y/n/a] - (y, n, a): n Traceback (most recent call last): File "/home/d/.cache/pypoetry/virtualenvs/tmuxp-m3jEKDEh-py3.11/bin/tmuxp", line 6, in <module> sys.exit(cli.cli()) ^^^^^^^^^ File "~/projects/python/tmuxp/src/tmuxp/cli/__init__.py", line 134, in cli command_load( File "~/projects/python/tmuxp/src/tmuxp/cli/load.py", line 640, in command_load load_workspace( File "~/projects/python/tmuxp/src/tmuxp/cli/load.py", line 450, in load_workspace _load_detached(builder) File "~/projects/python/tmuxp/src/tmuxp/cli/load.py", line 217, in _load_detached builder.build() File "~/projects/python/tmuxp/src/tmuxp/workspace/builder.py", line 293, in build for w, wconf in self.iter_create_windows(session, append): File "~/projects/python/tmuxp/src/tmuxp/workspace/builder.py", line 416, in iter_create_windows w.set_window_option(key, val) File "~/projects/python/libtmux/src/libtmux/window.py", line 346, in set_window_option self.refresh() File "~/projects/python/libtmux/src/libtmux/window.py", line 84, in refresh return super()._refresh( ^^^^^^^^^^^^^^^^^ File "~/projects/python/libtmux/src/libtmux/neo.py", line 174, in _refresh obj = fetch_obj( ^^^^^^^^^^ File "~/projects/python/libtmux/src/libtmux/neo.py", line 242, in fetch_obj assert obj is not None AssertionError 

Intermittently during tmuxp load

Done in 1.87s. Traceback (most recent call last): File "~/.local/bin/tmuxp", line 8, in <module> sys.exit(cli.cli()) ^^^^^^^^^ File "~/projects/tmuxp/src/tmuxp/cli/__init__.py", line 134, in cli command_load( File "~/projects/tmuxp/src/tmuxp/cli/load.py", line 640, in command_load load_workspace( File "~/projects/tmuxp/src/tmuxp/cli/load.py", line 452, in load_workspace _load_attached(builder, detached) File "~/projects/tmuxp/src/tmuxp/cli/load.py", line 184, in _load_attached builder.build() File "~/projects/tmuxp/src/tmuxp/workspace/builder.py", line 289, in build for w, wconf in self.iter_create_windows(session, append): File "~/projects/tmuxp/src/tmuxp/workspace/builder.py", line 411, in iter_create_windows w.set_window_option(key, val) File "~/.local/lib/python3.11/site-packages/libtmux/window.py", line 346, in set_window_option self.refresh() File "~/.local/lib/python3.11/site-packages/libtmux/window.py", line 84, in refresh return super()._refresh( ^^^^^^^^^^^^^^^^^ File "~/.local/lib/python3.11/site-packages/libtmux/neo.py", line 174, in _refresh obj = fetch_obj( ^^^^^^^^^^ File "~/.local/lib/python3.11/site-packages/libtmux/neo.py", line 242, in fetch_obj assert obj is not None AssertionError 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions