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

Ouverte Adaptée aux débutants
#839 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
83/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python

Piste de recherche

Lis src/libtmux/server.py autour de Server.kill_session (lignes 483–500) et compare le traitement de la cible avec has_session(exact=True) autour de la ligne 429. Trouve ensuite les tests pertinents de kill-session et exécute-les. Le travail est terminé si la suppression d’un nom exact inexistant déclenche une erreur et qu’une session dont le nom partage uniquement ce préfixe est conservée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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
Langage dominant
Python
Étoiles
1.2k
Forks
127
Merge moyen
2 h 37 min
PR mergées (30 j)
33

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de tmux-python/libtmux

Toutes les issues de tmux-python/libtmux

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.