Problema ao atualizar o Discourse Forum


Olá a todos!
Eu estava tentando atualizar o fórum do Discourse usando o link postado no painel de administração e recebi este erro. Todo o fórum desapareceu. O que devo fazer agora para redefinir a atualização? Muito obrigado se alguém puder me ajudar. :sob:

1 curtida

Na verdade, isso significa que seu fórum está sendo atualizado. - a menos que você interrompa a atualização antes que ela termine.

Tente visitar seu fórum https://yoursite.com/latest.json. Se ele retornar algo, espere 10 minutos e veja se o problema se resolve sozinho.

1 curtida

Obrigado pela sua resposta, tentei o método que você deu e ele retorna 502 Bad Gateway nginx.

Parece que você pode ter que executar ./launcher rebuild app

Tentei o ./launcher rebuild app e recebi as seguintes mensagens de erro:

FAILED

--------------------

Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development' falhou com retorno #<Process::Status: pid 340 exit 5>

Localização da falha: /pups/lib/pups/exec_command.rb:112:in `spawn'

exec falhou com os parâmetros {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'"]}

6e9e60bd6b6113cdcb001127fd2a24fe86f2a1658bf24500e5e2b720fd793510

** FALHA AO INICIALIZAR ** por favor, role para cima e procure por mensagens de erro anteriores, pode haver mais de uma.

./discourse-doctor pode ajudar a diagnosticar o problema.

e rolei para cima e encontrei alguns logs de erro possíveis:

1)200:M 25 Jun 2023 16:00:16.252 # Falha ao escutar na porta 6379 (TCP), abortando.

2)[DEPRECATED] A flag `--deployment` está obsoleta porque depende de ser lembrada entre invocações do bundler, o que o bundler não fará mais em versões futuras. Em vez disso, use `bundle config set --local deployment 'true'`, e pare de usar esta flag
[DEPRECATED] A flag `--without` está obsoleta porque depende de ser lembrada entre invocações do bundler, o que o bundler não fará mais em versões futuras. Em vez disso, use `bundle config set --local without 'test development'`, e pare de usar esta flag

3)Bundler::PathError: O caminho `/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/sprockets-f4d3dae71ef2` não existe.

4)Bundler::InstallError: sass-embedded-1.63.6-x86_64-linux requer a versão do rubygems >= 3.3.22, que é incompatível com a versão atual, 3.2.18

Alguém mais encontrou um problema semelhante recentemente, se isso ajudar?

Muito obrigado pela sua resposta, mas acho que não é o mesmo problema, meu servidor é na Alemanha. Estou usando a imagem docker do discourse para o meu servidor. O que devo fazer se ./launcher rebuild app não funcionar?

1 curtida

Parece semelhante a
Rebuild falhou devido à incompatibilidade de gemas Ruby

1 curtida

Obrigado pela ajuda! Sim, parece semelhante e eu tentei:

my server:/var/discourse**$ git pull

fatal: Not a git repository: ../.git/modules/discourse_docker

Devo fazer algo antes de executar o git pull? Eu estava fazendo isso no /var/discourse do meu servidor.

Parece possível que você tenha uma configuração incomum - esta é uma instalação padrão?

1 curtida

Li os últimos documentos do programador para mim e diz que, como muitas coisas na web rodam atrás do nginx e o Discourse também precisa ser hospedado atrás do nginx. A instalação padrão não funciona para a minha situação.

E o seguinte é como ele disse no documento e como ele fez:

O Discourse roda em um contêiner Docker. No entanto, ele requer um tipo especial de configuração, não via docker-compose.yml ou um arquivo .conf.

O repositório do GitHub discourse-project/ que requer configurar e construir a imagem Docker pode ser encontrado aqui. Ignore o programa “discourse-setup” legal e interessante que eles fornecem, isso não funcionará aqui. Precisamos configurar o aplicativo nós mesmos.

  1. clone discourse_docker para /var/discourse: git clone https://github.com/discourse/discourse_docker.git /var/discourse
  2. vá para a pasta e use uma configuração de exemplo fornecida: cd /var/discourse &amp;&amp; cp samples/standalone.yml containers/app.yml
  3. em seguida, edite o arquivo containers/app.yml (por exemplo, com sudo nano)
  • Foram feitas alterações na seção de hospedagem, nas configurações de smtp para e-mail e - importante - na seção de exposição para que apenas uma porta não utilizada seja exposta ao exterior
  • Para executar o Discourse em um caminho como “/forum”, mais algumas alterações foram necessárias, conforme descrito aqui
  • Alguns problemas também ocorrem com a autenticação de e-mail:
    • O e-mail que envia e-mails está aqui “e-mail do servidor”. No entanto, o Discourse espera que o e-mail tenha o mesmo domínio de seu host, ou seja, “e-mail do servidor”
      • Solução descrita aqui
    • Use também “DISCOURSE_SMTP_AUTHENTICATION: login” como outra opção de ambiente. Por que também sempre . . .
  1. Em seguida, construa o aplicativo a partir do diretório /var/discourse com sudo ./launcher bootstrap app. Isso leva bastante tempo
  2. Em seguida, você poderá iniciar o contêiner do Discourse com sudo ./launcher start app.
1 curtida

Essas são boas anotações.

O git pull;./launcher rebuild app deve funcionar.

De qual versão você está atualizando?

O sistema operacional está desatualizado? (cat /etc/issue)

O disco está cheio? (df - h)

1 curtida

Obrigado pela sua resposta! A versão da qual estou atualizando é a 2.8.0.beta6 e a última atualização foi em 28.09.2021.

Após executar cat /etc/issue, obtive:
Debian GNU/Linux 9 \\n \\l

E as seguintes informações de acordo com ./discourse-doctor

==================== INFORMAÇÕES DE MEMÓRIA ====================
RAM (MB): 4050

              total        used        free      shared  buff/cache   available
Mem:           3955         427        1152          63        2375        3182
Swap:             0           0           0

==================== VERIFICAÇÃO DE ESPAÇO EM DISCO ====================
---------- Espaço em Disco do SO ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        63G   27G   34G  45% /

==================== INFORMAÇÕES DE DISCO ====================
Disco /dev/sda: 64 GiB, 68719476736 bytes, 134217728 setores
Unidades: setores de 1 * 512 = 512 bytes
Tamanho do setor (lógico/físico): 512 bytes / 512 bytes
Tamanho de E/S (mínimo/ótimo): 512 bytes / 512 bytes
Tipo de label do disco: dos
Identificador do disco: 0xc0b6220c

Device     Boot Start       End   Sectors Size Id Type
/dev/sda1        2048 134217727 134215680  64G 83 Linux

Você pode adicionar swap.

Veja também a atualização do PostgreSQL 13.

Você reconstruiu mais de uma vez?

Veja também Debian | endoflife.date

Você realmente precisa mover tudo para uma nova VM com um sistema operacional suportado. Portanto, você também precisará atualizar o restante do que você tem em execução.

1 curtida

Olá Jammy, após várias tentativas de instalação falhadas, descobri que a causa foi o limite de memória do servidor e a rede. Sugiro que você use um servidor com 4GB de memória e acesso normal ao GitHub e Ruby.

Este erro me incomoda - você ainda o vê? O contêiner docker agora deve estar executando 3.2.0

Mas se o seu /var/discourse não for um diretório git, algo foi feito de forma diferente das instruções. Isso impede uma atualização e causa a incompatibilidade da versão ruby. Para mim:

/var/discourse# git status
On branch main
Your branch is up to date with 'origin/main'.

Também vemos um diretório .git:

# ls -a /var/discourse/
.     .github     README.md  cids              discourse-setup  launcher     scripts    tests
..    .gitignore  bin        containers        image            rebuild.log  shared
.git  LICENSE     c          discourse-doctor  index.html       samples      templates

Editar: mas é verdade, se você estiver em um sistema operacional muito antigo, terá algum trabalho a fazer, para instalar o discourse em um novo sistema operacional e recuperar seu backup, e também para fazer todas as coisas extras que podem ser necessárias para sua situação específica.

Se o seu servidor estiver fazendo mais coisas do que apenas executar o discourse, isso é uma complicação extra. Você pode precisar de conhecimento local.

3 curtidas

Tenho uma falha comparável com ruby gems, etc.
Foi uma instalação limpa em um novo servidor.

Obrigado pessoal pela ajuda, vou tentar suas sugestões uma por uma para corrigir o problema. Se houver algum feedback (bom ou ruim), postarei de volta no fórum. Obrigado novamente!

1 curtida

Instalei com sucesso a nova versão do Discourse. Segui as instruções do documento acima e funcionou para mim. Mas agora tenho problemas para restaurar a partir do backup.
Tentei Restaurar um backup da linha de comando, mas obtive o seguinte:

root@my_server:/var/www/discourse# discourse restore my_server-2023-06-20-033008-v20210922064213.tar.gz
Starting restore: my_server-2023-06-20-033008-v20210922064213.tar.gz
[STARTED]
'system' has started the restore!
Marking restore as running...
Making sure /var/www/discourse/tmp/restores/default/2023-06-29-113408 exists...
Copying archive to tmp directory...
Unzipping archive, this may take a while...
EXCEPTION: /var/www/discourse/lib/discourse.rb:137:in `exec': Failed to decompress archive.

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
/var/www/discourse/lib/discourse.rb:171:in `execute_command'
/var/www/discourse/lib/discourse.rb:137:in `exec'
/var/www/discourse/lib/discourse.rb:33:in `execute_command'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:78:in `decompress_archive'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:23:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:492:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:45:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Trying to rollback...
There was no need to rollback
Cleaning stuff up...
Removing tmp '/var/www/discourse/tmp/restores/default/2023-06-29-113408' directory...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.

O que devo fazer agora?

Há algo de errado com seu arquivo de backup. Ele pode estar apenas truncado.

1 curtida