Seleção de tema do usuário quebrada e causa problemas de desempenho?

Olá,

Primeiramente, obrigado por tornar o Discourse tão incrível. Nós o adoramos desde a migração do plugin bbPress (a migração não foi tranquila, mas isso é assunto para outro tópico).

Um dos usuários do meu site no Discourse notou que, ao tentar selecionar um tema diferente em seu perfil, a exibição estava quebrada (capturas de tela em anexo). No entanto, não consegui reproduzir o cenário de template quebrado, pois os temas carregavam normalmente do meu lado como administrador.

Mas a parte intrigante é que eu achava que nossa comunidade era relativamente pesada em tráfego/usuários (49 mil posts, 7,3 mil usuários) e que o VPS (2 GB de RAM + 2 GB de swap e 1 CPU) não conseguia lidar com isso, gerando algum gargalo que fazia o site carregar muito devagar (algumas páginas levavam de 3 a 10 segundos para carregar, mostrando o spinner).

Eu vinha usando o tema “Grey Amber” como padrão e tinha os temas “Dark” e “Light” disponíveis como opções selecionáveis pelos usuários.

Então decidi desativar os temas Dark e Light para os usuários e, de repente, o site ficou muito mais ágil, quase tão rápido quanto o Meta.discourse!!! Agora, o webpagetest.org e outros sites de teste de página mostram tempos de carregamento absurdamente rápidos, alguns até abaixo de um segundo. Até mesmo páginas de backend como sidekiq, logs, upgrade, etc., que antes carregavam muito devagar, agora são quase instantâneas. Ainda não testei, mas me pergunto se as atualizações podem até funcionar agora pela interface, já que antes ficavam travando, cancelando ou lançando erros, etc. OMG, uau, até a atualização pela interface funciona agora… Eu tinha que fazer isso pelo terminal e deixar o site fora do ar por cerca de 20 a 30 minutos; acho que isso não será mais necessário!

Esse é um comportamento normal? Ao desativar ou colocar os temas como inativos, obtém-se um aumento de desempenho? Minha suposição é que não, mas é exatamente o que encontrei até agora, mesmo após reconstruir a aplicação várias vezes.

Executando: v2.4.0.beta1 + 135 157 (atualizei enquanto digitava isso apenas para testar se funcionaria pela interface e funcionou, incrível)
Backups no S3
Componente de Tema Header Links (o site já era lento antes de adicionar este componente também)
discourse-oauth2-basic

O DNS é o Cloudflare, mas sei que é melhor ter desativado todas as otimizações, cache, Brotli, etc. Agora está muito rápido e não há problemas com as mesmas configurações do Cloudflare; a única coisa que mudou foi a desativação dos temas.

Peço desculpas se esta é uma postagem longa, mas estou tentando fornecer o máximo de informações possível, caso ajude alguém ou ajude no depuramento.

O usuário tirou capturas de tela que anexei, mostrando como fica no navegador ao selecionar Dark ou Light:

Quando isso acontece, aparece algo no console do navegador ou em /logs? A lentidão no Sidekiq e nos Logs provavelmente não seria causada por um tema (o Grey Amber é apenas um esquema de cores, então não há modificações significativas lá).

Limpei os logs, reativei os temas para que os usuários pudessem selecioná-los e fiz uma prévia na minha conta, sem ver nada no console do navegador.

Nos logs, isso apareceu, mas provavelmente não tem relação:

TypeError: t.forEach não é uma função
URL: https://wowlazymacros.com/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js
Linha: 3
Localização da janela: https://wowlazymacros.com/t/7-2-5-updated-fury-macros/3811

Pode ser que seu servidor estivesse sobrecarregado executando algum tipo de manipulação de imagem e que agora já tenha concluído.

Talvez você esteja certo. Pode ser algum processo que faz o CPU atingir 100% por um tempo e deixa tudo mais lento. O engraçado é que deve ser uma coincidência muito grande que ele tenha se comportado assim por semanas e, de repente, mudei aquela configuração e ficou super suave lol.

Outro mistério sem solução :stuck_out_tongue_winking_eye:

Ou talvez alguns dos commits tenham corrigido algo desde a última reconstrução que fiz. O que mais me surpreende é que agora consigo fazer atualizações pelo navegador, o que me deixa muito feliz :+1: