Fórum saiu do controle - possivelmente após atualização

Post longo…

Há alguns dias migrei meu fórum para um novo servidor. A migração correu bem e os usuários conseguiram fazer login e usá-lo normalmente. No entanto, após 2-3 horas com os usuários logados, eles descobriram que não conseguiam usá-lo. Eu não vi o problema inicialmente, mas em 10-15 minutos descobri que minha conta também foi afetada. O que eu estava vendo era a página do fórum sendo repetidamente exibida na página, mas com o conteúdo faltando… então cabeçalho… um pouco de texto… cabeçalho novamente… um pouco de texto novamente… cabeçalho novamente… etc.

Presumi que algo havia dado errado com a migração, então, como havia muito poucos posts desde a migração e eu ainda tinha o servidor antigo disponível, simplesmente liguei o fórum no servidor antigo e apontei o DNS de volta para ele. Isso me daria tempo para descobrir o que deu errado e tentar a migração novamente.

Então, hoje, meu fórum ‘antigo’ me pediu para dizer que atualizações críticas eram necessárias. Eu as apliquei e as coisas pareceram estar OK. No entanto, uma ou duas horas depois, o fórum antigo está apresentando o mesmo problema de exibição estranho que o meu fórum migrado apresentava.

Então, agora estou pensando que há algo errado após a atualização. O servidor migrado teria capturado o código mais recente quando construído, então exibiu o problema imediatamente. O fórum antigo só recebeu as atualizações hoje e começou a ‘enlouquecer’ logo depois.

Até agora, tentei sem sucesso:

  1. ./launcher rebuild app
  2. Comentar todos os plugins em app.yml e ./launcher rebuild app
  3. Executando em modo de segurança com todas as opções ativadas
  4. Limpando o cache do navegador
  5. Tentei navegadores diferentes (Chrome, Edge, Firefox e Opera)

O problema parece ser progressivo para usuários logados. Fiz login com uma conta de teste hoje e ela não apresentou o problema, mas quando tentei isso no servidor migrado, a conta de teste acabou apresentando os mesmos problemas. Infelizmente, não consigo tentar mais nada no momento porque minha conta de administrador está apresentando o problema, então ela está inutilizável.

Tenho um backup de antes da atualização, mas suspeito que isso não vai ajudar. Se eu reconstruir o fórum, ele capturará as últimas atualizações, então se eu restaurar o conteúdo nele, provavelmente ele enlouquecerá novamente em algumas horas.

Configuração do servidor:

Debian 12 rodando Docker Swarm v26.1.4. 120 GB de espaço em disco disponível. 64 GB de RAM com apenas cerca de 20 GB atualmente em uso. As conexões para o servidor são via Cloudflare Tunnels. O servidor antigo tem menos espaço em disco e memória disponíveis, mas nenhum deles está no limite.

Estou tentando pensar no que mais posso fazer agora para tentar colocar as coisas de volta online. Estou aberto a sugestões!

Minificar automaticamente, talvez?

6 curtidas

Obrigado pela sugestão.

Estava ativado. Não tenho certeza do porquê, pois normalmente não o ativo. Desativei (JS, CSS e HTML), mas ainda vejo as páginas repetidas rolando na tela.

PS. Observo que a minificação automática do Cloudflare será descontinuada no início de agosto.

Você seguiu as instruções para limpar o cache do Cloudflare também?

1 curtida

Sim. O cache do Cloudflare (e o cache do navegador) foi limpo após a minificação automática ter sido desativada.

1 curtida

Nesse caso, eu recomendaria verificar o console do desenvolvedor do navegador para ver se há algum erro quando o problema ocorrer.

Você também pode gostar de tentar o modo de segurança novamente agora que corrigiu o problema do Cloudflare.

1 curtida

O modo de segurança está funcionando agora. Nenhum erro no console JS, exceto um aviso de depreciação de fuso horário. Vou voltar ao tema padrão e desativar todos os componentes do tema para ver se funciona bem fora do modo de segurança e, em seguida, reativá-los um por um para ver se consigo identificar o problema.

Vou demorar um pouco para confirmar como as coisas estão indo porque o Dad’s Taxi tem que fazer uma viagem!

1 curtida

Parece que a minificação automática foi a culpada. Não sei como/quando foi ativada. Eu não fiz isso conscientemente, pois já tive problemas semelhantes com outros sistemas no passado. Minha suspeita é que a Cloudflare adicionou recentemente (acho eu) um botão para ativar um conjunto de configurações básicas para melhorar a forma como os navegadores interagiam com os sites. Revisei as alterações sugeridas e ativei aquelas que pareciam sensatas e seguras. Voltei a olhar as opções e não vejo nenhuma referência à minificação automática, mas talvez ela tenha sido ativada como parte das ‘configurações básicas’?

O cache da Cloudflare também explica por que esse problema apareceu repentinamente horas depois que apliquei as atualizações do Discourse. Tenho o cache TTL do navegador da Cloudflare definido para 4 horas. Eu não limpei o cache da Cloudflare após a atualização, então por algumas horas depois disso as pessoas ainda estavam recebendo os ‘bons’ arquivos antigos que estavam recebendo há semanas desde a última atualização do Discourse. Então, após 4 horas, a Cloudflare começou a atualizar seu próprio cache, viu os novos arquivos do Discourse e os minificou antes de adicioná-los ao seu cache. Então, à medida que os navegadores solicitavam atualizações para seus próprios caches, eles recebiam os arquivos corrompidos. Como os navegadores atualizavam seus próprios caches em momentos diferentes, cada usuário via as coisas darem errado em momentos diferentes.

Lições aprendidas:

  1. Limpe o cache da Cloudflare após aplicar uma atualização do Discourse. Parece óbvio agora, mas eu não tinha pensado nisso antes!
  2. Não ative a minificação automática. Eu devo ter feito isso, mas não sei como/quando. Eu já sabia que não era uma boa ideia, pois já tinha quebrado um site WordPress com isso há algum tempo, mas isso reforçou a mensagem.

Muito obrigado a @JammyDodger e @david por me ajudarem a resolver isso :smiley:

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.