Atualizar de /admin/upgrade leva *muito* tempo

Ao atualizar um único plugin de admin/upgrade leva muito tempo.

Normalmente, uma reconstrução completa é feita em cerca de 7 minutos.

Ele está atualizando desde 2023-03-02T20:07:00Z, o status agora é:

Saída do HTOP:

EDIT: 2023-03-02T20:44:00Z - ainda na mesma linha de log. CPU igual. Iniciou a reconstrução CLI neste ponto.

EDIT2: Para referenciar o tempo exato que uma reconstrução leva na minha máquina, carimbo de data/hora de conclusão da reconstrução: 2023-03-02T20:51:00Z

4 curtidas

Sim, tenho tido a mesma experiência desde pelo menos ontem.

Agora é mais ou menos impossível atualizar a partir da tela de atualização em tempo razoável no momento, então você é forçado a atualizar a partir da linha de comando.

A reconstrução da CLI foi concluída.

A atualização do administrador ainda está travada e não parece que o plugin foi atualizado.

Cliquei em RESET UPGRADE e iniciei outra reconstrução da CLI.

1 curtida

Eu também, tenho exatamente a mesma coisa. Muito irritante ao atualizar plugins, leva muito, muito tempo - extremamente inconveniente.

2 curtidas

Existe alguma solução alternativa para isso? Toda vez que atualizo para acompanhar as mudanças no Discourse Chatbot :robot: (Suporta ChatGPT) - plugin - Discourse Meta, demora muito.

Isso ainda é um problema.

No entanto, parece afetar apenas os servidores de especificações inferiores?

1 curtida

Só para adicionar mais uma voz em vez de respostas… :slight_smile:

Eu tenho um pequeno site de teste DO de 1GB com muitos plugins, então normalmente não é o mais rápido. No entanto, acho que tem levado muito mais tempo recentemente também, e o meu ficou preso em uma estranheza outro dia como o @MarcP e eu tive que redefini-lo.

Eu nunca cronometrei antes, mas hoje eu o configurei para ‘Atualizar Tudo’ e anotei quando cliquei no botão. Até agora temos um início às 9h30 e ainda está em andamento às 10h15. Atualmente está empacotando alguns assets. Posso dizer com alguma confiança que normalmente não leva mais de 45 minutos e contando para fazer sua coisa.

Embora pareça que teve alguns problemas de permissão limpando arquivos temporários? Não tenho certeza se isso é relevante.

4 curtidas

@david e eu encontramos a causa raiz. (semelhante ao que @Falco encontrou no passado)

Usamos sinalizadores especiais do Ruby para tentar limitar a memória durante as atualizações e isso não funciona mais no Ruby 3.2.

Devemos ter um PR em breve para corrigir o problema.

7 curtidas
7 curtidas

Nota… para que a correção tenha efeito, há uma pequena situação de ovo e galinha. O código antigo ainda é carregado quando você executa a atualização.

Você pode precisar de um ./launcher rebuild pela primeira vez, e nas vezes subsequentes o atualizador da web funcionará bem.

Não há uma maneira fácil de contornar isso. @cvx é um problema complicado… tecnicamente deveríamos ter o DockerManager::Upgrader.new(user_id, repo, repo_version).upgrade executando o novo código do atualizador quando ele atualiza… mas é uma caixa de pandora.

Solução rápida

  1. Inicie a atualização do gerenciador docker
  2. Cancele quando ele travar
  3. Execute ./launcher restart app pelo shell
  4. A atualização pela web funcionará.

Solução fácil

  1. Execute ./launcher rebuild app

Tudo ficará bem depois disso.

EDIT

Fechando isso preventivamente porque quero que este seja o último post sobre este tópico. Isso facilitará para as pessoas encontrarem as soluções. Marque para abrir se o problema persistir após uma reconstrução.

8 curtidas