`Server.kill_session(name)` kills a session whose name only starts with `name`

Aberta Para iniciantes
#839 1 comentário 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
83/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
python

Direção de pesquisa

Leia src/libtmux/server.py perto de Server.kill_session (linhas 483–500) e compare o tratamento do alvo com has_session(exact=True) perto da linha 429. Em seguida, encontre os testes relevantes de kill-session e execute-os. O trabalho estará concluído quando tentar encerrar um nome exato inexistente gerar um erro, enquanto uma sessão cujo nome compartilha apenas esse prefixo permanecer.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug
Summary

Server.kill_session("doom") removes a session named doomsday when no doom exists. It passes the bare name to kill-session -t, and tmux resolves a bare target by prefix and fnmatch(3). The docstring says so ("'asdf' will kill 'asdfasd'"), while Server.has_session() already defaults to exact=True. Scripts that kill by name can end someone else's session.

Reproduction
  1. Create two sessions and kill by the shorter name:
import libtmux
srv = libtmux.Server(socket_name="kill-prefix", config_file="/dev/null")
srv.new_session("probe", window_command="sh")
srv.new_session("doomsday", window_command="sh")
srv.kill_session("doom")
print(sorted(s.name for s in srv.sessions))
srv.kill()
Expected

kill_session("doom") raises because no session named doom exists, and doomsday survives.

Actual

It returns normally and doomsday is gone: ['probe'].

Environment
  • libtmux: master at 886b1cd (v0.62.0 plus 114 commits)
  • tmux: 3.8 (system build reports 3.8a)
  • Python: run with uv run --frozen from the libtmux checkout
  • OS: Linux (WSL2), private -L socket, -f /dev/null
References
Linguagem predominante
Python
Estrelas
1.2k
Forks
127
Merge médio
2h 37min
PRs com merge (30d)
33

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de tmux-python/libtmux

Todas as issues de tmux-python/libtmux

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.