repro_issue_218.sh: cleanup can delete plugin folders another run made

Ouverte
#590 0 commentaires 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é
4/5
Temps estimé
3-5 jours
Accessibilité débutants
56/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
github-actions, lua, neovim, shell
Domaine
devtools, testing

Piste de recherche

Start with scripts/repro_issue_218.sh and trace how bootstrap cloning and signal cleanup handle entries in the shared lazy folder. Add a network-free stubbed regression script covering both reproductions, then wire it into CI. The issue describes atomic bootstrap cloning as the planned fix; done means the new regression fails on the current behavior and passes with the fix, including concurrent runs and signal cleanup.

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

Description

needs-triage

scripts/repro_issue_218.sh cleanup can delete plugin folders that another run made (follow-up to a Codex P2 on #458).

Defect. On SIGTERM, SIGINT or SIGHUP during Lazy! restore, the cleanup removes every entry in <data>/issue-218/lazy that was not there before the restore. A plugin folder that another run (or vv issue-218) created in the same data folder in the meantime is deleted too. Only public plugin clones are affected, not user data, and it needs a concurrent cold install plus a signal.

Reproductions.

  • A: start the script, then during the restore add lazy/other.nvim (with a .cloning marker) and a full snacks.nvim copy to the same lazy folder, then signal the script or its process group. Main deleted both folders in 6 of 6 trials.
  • B: two runs on one data folder, run A holds lazy.nvim's bootstrap clone. On main, run B exits 2 (a half clone sits under the real name lazy), and run A's exit leaves lazy.nvim invalid.

Planned fix. Atomic bootstrap: clone into lazy.nvim.bootstrap-<run> and rename it when the clone is complete, so cleanup removes only that one name. In a trial it passed A (6 of 6 folders survive) and B, and the cleanup got shorter. Add a stubbed regression script (no network) that fails on main and passes with the fix, and wire it into CI. The same branch can also refuse a TMPDIR with $ ' \ , { [`, use job control so a backgrounded run still stops its Neovim, and document the side effects.

Owner: the next change to scripts/repro_issue_218.sh. Deferred from the README verification run with the maintainer's agreement.


Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

Langage dominant
Lua
Étoiles
3.2k
Forks
223
Merge moyen
6 h 7 min
PR mergées (30 j)
210

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

  • Aucun Dockerfile ni fichier Docker Compose
  • Aucun modèle de pull request
  • Aucun guide de contribution

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 coder/claudecode.nvim

Toutes les issues de coder/claudecode.nvim

Issues similaires

Plus d'issues Lua

Recevez les nouvelles issues par e-mail

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