Site inacessível após atualização de 3.4.0 para 3.4.1

Olá a todos,

Acabei de atualizar minha instância do Discourse da versão 3.4.0 para a 3.4.1 (usando ./launcher rebuild app). A atualização ocorreu sem problemas — nenhum erro durante o processo e o contêiner Docker está em execução. No entanto, o site está completamente inacessível.

Alguém já encontrou esse problema antes? Alguma ideia de como solucionar? Como posso fornecer mais informações?

Agradeço antecipadamente pela ajuda!

Oi,

Você tentou reconstruir uma segunda vez?
Existem situações em que isso pode ajudar. Eu tentaria isso primeiro.

Você também pode olhar ./launcher logs app e /shared/standalone/log/rails/production.log se encontrar algo interessante.

1 curtida

Estamos experimentando um respondedor de IA, ele envia sussurros aqui, neste caso, ele deu alguns conselhos razoáveis:

Olá, parece que seu problema pode ser resolvido investigando os logs do servidor para diagnosticar o que deu errado após a atualização. Veja como você pode proceder:

  1. Verifique os logs de erro do Discourse na Interface de Administração:

    • Se você tiver acesso de administrador e o site ainda estiver parcialmente acessível, você pode verificar os logs no painel de administração. Navegue até /logs para encontrar mensagens de erro.
  2. Inspecione outros logs do servidor:

    • Execute os seguintes comandos no seu servidor:
      cd /var/discourse
      ./launcher enter app
      cd /shared/log/rails
      less production.log
      
    • Use less ou ferramentas semelhantes para ler os logs e identificar possíveis erros.
  3. Verifique os Logs do NGINX:

    • Você pode verificar os logs do NGINX para erros do servidor web com:
      cd /var/discourse
      ./launcher enter app
      cd /var/log/nginx
      less error.log
      
  4. Problemas de Rede e DNS:

    • Execute testes para garantir que o DNS do seu domínio esteja resolvendo corretamente e que portas como 443 e 80 estejam acessíveis.

Informe-nos o que você encontrar nos logs, e poderemos fornecer mais detalhes para ajudar a resolver o problema.

Recursos úteis:

Contexto adicional:
Se o problema persistir, as causas comuns podem ser:

  • Uma incompatibilidade de plugin após a atualização.
  • Memória/armazenamento insuficiente durante a reconstrução.
  • Alterações de configuração em app.yml.
2 curtidas

Obrigado!

Sim, e o mesmo resultado

Aqui estão os logs:

[default] start
[default] done
[default] Shutting down
[default] Terminating quiet threads
[default] Scheduler exiting...
[default] Pausing to allow jobs to finish...
[default] Bye!
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] Booting Sidekiq 6.5.12 with Sidekiq::RedisConnection::RedisAdapter options {:host=>"data", :port=>6379, :namespace=>"sidekiq"}
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] [PrettyText] Deprecation notice: `registerOption() from `pretty-text` is deprecated. Use `helper.registerOptions()` instead. [deprecated since Discourse 2.8.0.beta9] [removal in Discourse 2.9.0.beta1] [deprecation id: discourse.pretty-text.registerOption]
[default] Booted Rails 7.2.2.1 application in production environment
[default] Running in ruby 3.3.6 (2024-11-05 revision 75015d4c1f) [x86_64-linux]
[default] See LICENSE and the LGPL-3.0 for licensing details.
[default] Upgrade to Sidekiq Pro for more features and support: https://sidekiq.org
[default] start
[default] done
root@forum-web-only:/shared/log/rails#

Aqui estão os logs do NGINX:

2025/03/07 22:13:42 [warn] 2195#2195: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:42 [emerg] 2195#2195: unknown "public" variable
2025/03/07 22:13:43 [warn] 2198#2198: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:43 [emerg] 2198#2198: unknown "public" variable
2025/03/07 22:13:44 [warn] 2200#2200: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:44 [emerg] 2200#2200: unknown "public" variable
2025/03/07 22:13:45 [warn] 2202#2202: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:45 [emerg] 2202#2202: unknown "public" variable
2025/03/07 22:13:46 [warn] 2204#2204: duplicate extension "wasm", content type: "application/wasm", previous content type: "application/wasm" in /etc/nginx/conf.d/discourse.conf:4
2025/03/07 22:13:46 [emerg] 2204#2204: unknown "public" variable

Aqui estão os logs do discourse-doctor:

DISCOURSE DOCTOR Fri 07 Mar 2025 10:15:28 PM UTC
OS: Linux forum 5.4.0-208-generic #228-Ubuntu SMP Fri Feb 7 19:41:33 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux


YML=web_only.yml
Found containers/web_only.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.pragmaticentrepreneurs.com
SMTP_ADDRESS=smtp.eu.mailgun.org
DEVELOPER_EMAILS=REDACTED

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.pragmaticentrepreneurs.com
SMTP_ADDRESS=smtp.eu.mailgun.org
DEVELOPER_EMAILS=REDACTED
SMTP_PASSWORD=REDACTED
SMTP_PORT=587
SMTP_USER_NAME=postmaster@mg.pragmaticentrepreneurs.com
LETSENCRYPT_ACCOUNT_EMAIL=REDACTED

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 27.3.1, build ce12230

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                      COMMAND        CREATED         STATUS         PORTS                                       NAMES
d5a81b9154f4   local_discourse/web_only   "/sbin/boot"   6 minutes ago   Up 6 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   web_only
0b49a4b64386   local_discourse/data       "/sbin/boot"   19 months ago   Up 22 hours                                                 data


Discourse container web_only is running


==================== PLUGINS ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-akismet.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/camilleroux/discourse-affiliate.git
          - git clone https://github.com/somoza/discourse-xorigin.git
          - git clone https://github.com/discourse/discourse-chat-integration.git

WARNING:
You have what appear to be non-official plugins.
If you are having trouble, you should disable them and try rebuilding again.

See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.

========================================
Discourse version at forum.pragmaticentrepreneurs.com: NOT FOUND
Discourse version at localhost: NOT FOUND


==================== MEMORY INFORMATION ====================
OS: Linux
RAM (MB): 2067

              total        used        free      shared  buff/cache   available
Mem:           1971         988         101         178         881         627
Swap:          2047         190        1857

==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        49G   39G   11G  80% /

==================== DISK INFORMATION ====================
Disk /dev/loop0: 55.37 MiB, 58052608 bytes, 113384 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop1: 63.76 MiB, 66842624 bytes, 130552 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop2: 55.37 MiB, 58052608 bytes, 113384 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop3: 91.85 MiB, 96292864 bytes, 188072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop4: 91.9 MiB, 96346112 bytes, 188176 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop5: 63.71 MiB, 66789376 bytes, 130448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop6: 44.45 MiB, 46596096 bytes, 91008 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop7: 44.46 MiB, 46604288 bytes, 91024 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 603625F3-7AE2-40CB-B05E-0BD7EA2D57E4

Device      Start       End   Sectors  Size Type
/dev/vda1  227328 104857566 104630239 49.9G Linux filesystem
/dev/vda14   2048     10239      8192    4M BIOS boot
/dev/vda15  10240    227327    217088  106M Microsoft basic data

Partition table entries are not in disk order.

==================== END DISK INFORMATION ====================

==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Sending mail to REDACTED  . .
Testing sending to  using smtp.eu.mailgun.org:587, username:*** with plain auth.
SMTP server connection successful.
Sending to . . .
Mail was not sent.

Reason: 501 Invalid command or cannot parse to address

==================== DONE! ====================

Isso dá mais informações?

1 curtida

oi! Alguém vê como eu posso consertar isso? Muito obrigado :folded_hands:

1 curtida

Está funcionando para mim. Talvez porque eu não esteja logado. Então, talvez você possa tentar o modo de segurança.

Um dos seus plugins não é oficial e está muito desatualizado, é um fork de um mais atual:

Olá! Obrigado pela sua ajuda. Continuei a investigar.

Contexto:

Testes:

  • Mesmo problema quando tento manter apenas os plugins essenciais e oficiais.
  • 3.4.2 não resolve o problema; mesmo resultado que 3.4.0.
  • Não consigo acessar o Modo de Segurança porque, após a reconstrução, o site fica inacessível.
  • Quando restauro o snapshot com 3.4.0, ele volta a funcionar.

O problema provavelmente está ligado ao fato de que em meus logs do NGINX:

Parece estar ligado ao SSL, mas este problema não se parece com o meu: How to solve error duplicate extension "wasm"

Você consegue ver de onde vem o problema?

Normalmente, quando algo dá errado com uma reconstrução, a causa é exibida. Tente reconstruir novamente e role para cima após a conclusão para procurar a mensagem de erro.

Se você não estiver chegando a lugar nenhum, pode começar do zero com um novo VPS, restaurar seu backup e tentar novamente.

Você pode postar em Marketplace para pedir ajuda paga, se for urgente. Ou considere o hospedagem oficial do Discourse! Após iniciar seu teste, você pode restaurar seu backup e colocar sua comunidade de volta em funcionamento em pouco tempo.