Kubo migration cannot stop an alpha.25 daemon that outlived Runtime (--enable-gc ignores API shutdown)

Aberta
#505 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
42/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
linux, rust

Direção de pesquisa

Start in retire_online_coord and trace how it verifies daemon ownership, sends /shutdown, and handles the five-second wait; the issue also points to update_controller/child.rs and scripts/mac-source-home-restart.sh. Run the real-Kubo test with its daemon started using --enable-gc to reproduce the failure. Done means the owned daemon is stopped after accepting shutdown, the test covers that case, and the source-Home restart stops the gateway process group.

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

Descrição

Found 29 Oct while testing the 0.8.0-alpha.26 candidate (8a74b669c).

What happens: Kubo started with --enable-gc (every alpha.25 and alpha.26 daemon) answers /api/v0/shutdown with 200 but does not exit until a second interrupt. The offline migration (retire_online_coord, capsules/ipfs-provider) relies on that API shutdown, so if an alpha.25 online daemon is still running when the new Runtime starts, the migration refuses every start and local IPFS stays unusable until a reboot or a manual kill; the old daemon keeps running online.

Why it does not affect normal installs: the installed stop and elastos update kill Runtime's whole process group (update_controller/child.rs), which includes Kubo, so the old daemon is gone before the new Runtime starts. CI update journeys pass. It shows only when a daemon survives outside that, e.g. after a crash or on source Homes (scripts/mac-source-home-restart.sh signals only the gateway pid).

Fix (0.8.1): in retire_online_coord, after a daemon proven to be ours (our PeerID from /id, holds our repo lock) accepted /shutdown and is still alive after 5 s, send it one SIGTERM (Kubo's own second-interrupt force stop); keep the refusal if it still runs. Make the real-Kubo test start its online daemon with --enable-gc so it fails before the fix. Also have the source-Home restart script stop the gateway's process group.

Linguagem predominante
Rust
Estrelas
6
Forks
2
Merge médio
1d 3h
PRs com merge (30d)
42

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

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 elastos/elastos-runtime

Todas as issues de elastos/elastos-runtime

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

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