Atualização do Discourse continua falhando

Este provavelmente funcionará. Você pode iniciar essa imagem com, por exemplo, docker start b5f2a8a39709.

(Você também pode querer remover algumas dessas imagens mais antigas - há potencialmente uma grande quantidade de espaço em disco que pode ser recuperada!)

2 curtidas

Recebendo: Resposta de erro do daemon: Nenhum contêiner encontrado: b5f2a8a39709

Obrigado. Além disso, meus procedimentos de backup copiam TODOS os arquivos do sistema. Provavelmente existem imagens mais recentes lá se eu soubesse onde procurar e onde copiá-las.

Peço desculpas por interromper a solução alternativa, mas vamos migrar para outro servidor, o que foi um desafio por si só, pois era um servidor dedicado e renovamos o contrato por um ano inteiro em junho passado.

Talvez fosse bom se a equipe do Discourse emitisse um aviso para pessoas que o executam em servidores que não são mais suportados. Descobrir da maneira que descobrimos é MUITO desagradável. (três usuários com o mesmo problema, estamos falando de servidores, eles não são renovados na mesma velocidade que laptops.)

1 curtida

Quero deixar claro que esta não foi uma mudança intencional.

Também não temos acesso direto a hardware tão antigo e precisamos contar com alguma ajuda da comunidade aqui para ajudar a determinar o que exatamente está dando errado.

Assim que soubermos com certeza que este é um problema de compilação com a própria gem, poderemos tomar uma atitude.

3 curtidas

@here

Adicionar uma chave de nível superior no arquivo app.yml com

base_image: discourse/base:2.0.20220621-0049-slim

deve contornar o problema, embora vá desacelerar um pouco as reconstruções.

3 curtidas

Isso é justo, mas tais servidores ainda são oferecidos por provedores em todo o mundo como servidores de baixo custo.
Para muitos projetos menores de código aberto, tais servidores são ideais, em termos de preço, e muitas vezes eles não podem pagar um Intel Xeon ou AMD Ryzen com 32 GB de RAM.

Eu entendo completamente que você não tem o hardware para testar o software, mas pela comunicação neste tópico, foi estabelecido por nós e então não houve nenhuma reação.
Um simples desculpe, vamos investigar isso seria suficiente neste caso, em vez disso, você nos deixou esperando.

1 curtida

Testando agora com esta alteração.

A compilação parece falhar da mesma forma.

Isso foi com a alteração em containers/app.yml, adicionando:

base_image: discourse/base:2.0.20220621-0049-slim

próximo ao topo.

1 curtida

Isso significa que o problema não é que enviamos uma versão pré-compilada da gem, mas que a gem upstream não pode compilar nessas CPUs antigas.

Levantamos a issue #789 contra a gem oj.

2 curtidas

Entendido. Gostaria de restaurar uma das minhas imagens recentes do Docker – a partir dos meus backups do rsync. Existe algum procedimento que você possa me indicar para localizá-las e restaurar/iniciar uma delas? Obrigado!

Você já tentou um ./launcher start app?

1 curtida

Se este não funcionar, tente o outro método que detalhei para reconstruir a partir do último commit que funcionou.

3 curtidas

Sim. Isso faz o servidor web rodar, mas você não consegue acessar nenhum thread, eles apenas giram.

Isso não vai ajudar.

O problema é que a gema atualizada não verifica se a instrução é suportada pela CPU antes de usá-la.

Isso ajudará a colocar a instância do Discourse de volta em funcionamento, pois instala a versão anterior/funcional da gema (comprovado pelo que fiz para recuperar a instância de Bryan), mas sim - qualquer atualização adicional (via admin/upgrade) acionará o mesmo problema novamente.

1 curtida

Ainda não estou tendo sorte com uma nova compilação ou com a execução da instância anterior, então, como o fim de semana está chegando, posso deixar isso para a próxima semana na esperança de que a situação possa ser corrigida pelo lado do gem…

Qual procedimento foi este? Admito que estou um pouco confuso agora tentando acompanhar as várias ideias neste tópico. Obrigado!

A segunda parte desta postagem:

1 curtida

Vou tentar. Obrigado.

Outra solução alternativa possível é adicionar o seguinte ao app.yml

hooks:
  after_code:
    - exec:
        cmd:
          - sed -i -e 's/oj (3.13.*/oj (3.13.14)/' Gemfile.lock
3 curtidas

Presumo que as atualizações ainda seriam inseguras depois disso, correto? Estou fazendo o build no commit mais antigo no momento.