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

Aberta
#590 0 comentários 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
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
56/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
github-actions, lua, neovim, shell
Domínio
devtools, testing

Direção de pesquisa

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.

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

Descrição

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

Linguagem predominante
Lua
Estrelas
3.2k
Forks
223
Merge médio
6h 7min
PRs com merge (30d)
210

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

  • Sem Dockerfile nem arquivo Docker Compose
  • Sem modelo de pull request
  • Sem guia de contribuição

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

Todas as issues de coder/claudecode.nvim

Issues semelhantes

Mais issues de Lua

Receba novas issues na sua caixa de entrada

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