Atualização da versão do kernel necessária ao atualizar o discourse manualmente

Ao executar a atualização conforme descrito aqui: Manually update Discourse and Docker image to latest, recebo os seguintes erros:
“Versão do kernel 4.4.0-210-generic não suportada, atualize para pelo menos 4.14.0”

O que preciso fazer aqui? Não consigo encontrar tópicos de suporte sobre a atualização da versão do kernel.

1 curtida

Qual versão do Ubuntu você está usando? Provavelmente você precisa atualizar ou migrar para um novo servidor com um novo sistema operacional.

Adicionei esta verificação depois que recebemos muitas solicitações de suporte na semana passada de pessoas que não conseguiram executar o Discourse no Ubuntu 14.04.

Qual versão do Ubuntu você está executando? Você já estava executando o Discourse 3+ com sucesso?

2 curtidas

Estou executando o Ubuntu 16.04.3 x64

Usando o droplet da Digital Ocean: 1 GB de memória / 25 GB de disco

Existe uma opção para atualizar o Kernel por conta própria, como a Digital Ocean explicou aqui:

Mas estou me perguntando:

  1. Devo me preocupar com outra coisa quebrando no servidor?
  2. Devo optar pela opção “Atualizar Todos os Pacotes” ou pela opção “Atualizar Apenas o Kernel”.

Está além do fim da vida útil. Eu criaria um novo droplet e começaria do zero.

2 curtidas

É uma boa verificação, mas talvez pudesse mencionar a possibilidade de o sistema operacional estar desatualizado? O kernel é o que está errado, mas para a maioria das pessoas, ele vem como parte de uma versão do sistema operacional.

Suspeito que, com o Discourse se tornando cada vez mais popular, cada vez que um recurso de kernel ausente se torna crítico, o número de pessoas afetadas será muito, muito maior.

1 curtida

A wiki do Ubuntu diz que um sudo apt-get -s install --install-recommends linux-generic-hwe-16.04 lhe dará o kernel mais recente suportado (4.15) após uma reinicialização. Eu faria backup, baixaria o backup localmente e tentaria.

3 curtidas

Você quer dizer que o suporte padrão está EOL ou a versão real? A verificação de versão aqui mostra EOL de 2026: Releases - Ubuntu Wiki

É 2026 se você tiver uma assinatura Canonical e 2021 caso contrário. Mas isso é assunto para outro momento :grinning_face_with_smiling_eyes:

1 curtida

Obrigado pela sugestão. Farei backup e tentarei isso.

Como sugestão, talvez devêssemos adicionar suas instruções para verificar / obter a última atualização do Kernel às instruções de atualização padrão aqui: Manually update Discourse and Docker image to latest. Como você está sugerindo, parece que você está recebendo muitas solicitações de suporte em relação ao Kernel não estar atualizado.

2 curtidas

Obrigado pelo esclarecimento

Encontramos exatamente o mesmo bloqueio ao tentar atualizar esta manhã. Números de versão idênticos também foram fornecidos em nosso erro.

Também estamos executando o mesmo Ubuntu 14.04 no Digital Ocean.

Reservarei algum tempo nos próximos dias e desligarei o servidor, tirarei um snapshot completo como Falco sugere, e então tentarei:

Estou me perguntando quanto tempo isso me dará, antes de encontrar o próximo bloqueio?

Haveria alguma razão para não ir com tudo e executar um sudo apt-get dist-upgrade?

O Discourse é a única coisa instalada no meu servidor.

No nosso caso, sim, atualmente estamos na versão 3.1.0.beta1 - Commits · discourse/discourse · GitHub. Atualizamos para a versão mais recente a cada duas semanas.

Então você está atualmente na versão 3.1.0.beta no kernel 4.4? Se sim, vou relaxar a verificação do kernel então.

1 curtida

Um uname -r produz:

4.4.0-210-generic

E confirmado em Discourse 3.1.0.beta :slight_smile:

1 curtida

Ainda pretendo atualizar o Ubuntu subjacente amanhã :slight_smile:

Atualizações do Ubuntu quase sempre funcionam, mas não são rápidas e sua instância pode ficar inativa durante a maior parte do processo. O snapshot lhe dará um meio de reverter em caso de pior cenário, mas também adiciona tempo de inatividade.

Você já considerou apenas criar um novo servidor em uma versão mais recente e restaurar um backup? Se você estiver usando DNS com um TTL relativamente curto, o tempo de inatividade pode ser bem breve, dependendo apenas do tamanho do banco de dados e se seus uploads são locais.

1 curtida

Eu pessoalmente não (não tenho certeza sobre @AMK) - apenas porque levaria mais tempo para fazer tudo o que seria necessário do que digitar um único comando de atualização no console :blush:

Eu, na verdade, não tentei criar um novo servidor.
Assim como o @Richie, a única coisa que instalei no servidor é o Discourse. E exatamente, eu preferiria executar um comando para obter as atualizações do que ter que fazer uma migração completa para um novo servidor.

Também verifiquei minha versão de instalação e parece que meu site está na versão 3.0.0.beta16. Quando clico em atualizar, sou direcionado para “Você está executando uma versão antiga da imagem do Discourse” e é aí que encontro o erro de versão do Kernel não suportada ao tentar fazer a atualização.

1 curtida

@AMK (e qualquer outra pessoa interessada!)

Desliguei meu droplet Digital Ocean e tirei um snapshot completo (o que levou cerca de 30 minutos).

Em seguida, executei do-release-upgrade e passei de Ubuntu “16.04.7 LTS” para “18.04.6 LTS”.

Após a reinicialização, verifiquei o Discourse - tudo ok.

Em seguida, fiz outro upgrade de versão para me levar além do Ubuntu 18. Não tenho certeza para qual versão ele iria, talvez v20?

Após essa próxima reinicialização, meu servidor nunca mais voltou online :pensive:

Tive que restaurar meu snapshot (o que levou 15 minutos), depois passei de “16.04.7 LTS” para “18.04.6 LTS” novamente, e então atualizei o Discourse.

Tempo total: 1 hora e 50 minutos.

É por isso que sugeri:

Pode ser “mais difícil”, mas você pode fazer isso com tempo de inatividade quase zero (e tempo de inatividade zero se você criar o novo no mesmo data center do antigo e usar um IP estático), e se algo der errado, você pode simplesmente voltar para o servidor antigo.

Provavelmente, e você realmente quer estar na 2022.04.