String de tradução do Bad MF em localizações de cliente hebraico causa erro fatal no site

Isso aconteceu há cerca de 3 dias após uma atualização pela WebUI. O site tem cerca de 2 meses, tem cerca de 500 usuários e funcionou bem até agora.

Tentei reiniciar, depois reconstruir e, em seguida, limpar o Redis. Ainda recebo essa tela branca.

O que tento a seguir? Começar sem plugins? Rasgar e restaurar do backup?

Logs relevantes:

rails/production_errors: vazio

rails/production:
  Started GET "/" for 147.234.130.218 at 2024-07-21 08:38:13 +0000
  Processing by ListController#unread as HTML
  Rendered layout layouts/application.html.erb (Duration: 114.3ms | Allocations: 34494)
Completed 500 Internal Server Error in 264ms (ActiveRecord: 0.0ms | Allocations: 88191)

Você provavelmente já tentou isso, mas para garantir: o modo de segurança também falhará?

Não sabia disso até agora, obrigado, mas o problema persiste.
Como eu disse, tudo parece ok se eu fizer logout (tecnicamente limpar cookies), falha quando faço login.

Admito que não tenho experiência com Rails e em como fazer com que ele produza logs mais detalhados.

Bem, para mim, o Rails é… bem, mais do que apenas difícil.

Mas 500 é um erro do servidor. Há uma grande chance de que venha de algum plugin, mas também pode ser uma má configuração. O modo de segurança pode dar uma pista sobre o que está quebrado, se o problema ocorrer do lado do usuário. Mas se algo que muda a funcionalidade estiver quebrado no lado do servidor, o modo de segurança é inútil.

Claro, você pode desabilitar todos os plugins e reconstruir para ver se a situação será corrigida. E depois começar a descobrir qual deles. Ou pelo menos desabilitar todos os plugins que não são do Discourse — e mesmo assim não é totalmente certo porque nem todos os oficiais estão em uso aqui.

Mas isso leva bastante tempo. Talvez seja uma atitude mais sensata esperar até que alguém que realmente saiba dê uma opinião.

Dar uma olhada em /logs pode muitas vezes revelar alguns detalhes extras, ou verificar o console do navegador ao tentar carregar a página.

1 curtida

Nada de estranho no console do navegador (Firefox) e a única linha de log que vejo criada na solicitação é postada no tópico original acima.

qual é o meu próximo passo? ./launcher bootstrap e restaurar do backup?

Eu acho que Jammy se refere aos logs do Discourse. Você pode fazer login como administrador?

1 curtida

Eu sou o administrador, e quando faço login, as informações são escassas, então perguntei internamente…

Sim, eu estava me referindo à página YourSite/logs. Não há nada registrado lá para o erro?

1 curtida

Ah, que chato… a falta de tradução de localidade é um motivo para lançar um 500?!

EDIT: Como isso se tornou um relatório de bug - não acho que o problema esteja nos arquivos de idioma em si (já que copiar os arquivos *.en.yml para he.yml não ajudou) sugiro que tais problemas deveriam, pelo menos, falhar graciosamente e voltar para o inglês.

Pelo que li, não há como reverter o git para um último commit funcional antes desta interrupção? Se isso passou nos testes, então acho que temos um novo teste para adicionar. Este commit não funcionará se o seu site por acaso estiver usando o local “errado”. Qual é o meu caminho para colocar o site no ar o mais rápido possível e como posso evitar isso no futuro?

Não tenho certeza se é apenas uma questão de local ausente em algum lugar. Pela captura de tela, suas configurações do MaxMind também estão erradas.

Minha suposição é que há algo mais quebrado e é por isso que o resto está quebrado também. Eu faria /.launcher rebuild app e tentaria encontrar se algo estranho aparece.

Qual idioma você está usando como local principal?

Hebraico

e eu reconstruí várias vezes, sem novidades.

Eu tentaria entrar no console do Rails e definir SiteSetting.default_locale='en'

Alternativamente: User.find_by(username: 'my-username').update(locale: 'en')

1 curtida

Preciso executar algo para substituir a localidade padrão dos meus usuários? Porque isso sozinho não mudou muita coisa.

Ah, bom. Isso funcionou para mim. Os textos ainda aparecem corretamente (alinhados da direita para a esquerda) e apenas a interface do usuário está em inglês. É estranho, mas utilizável.

Então vou percorrer todos os usuários com isso e, quando o hebraico voltar a funcionar, vou iterar todos eles de volta?

Eu levaria algum tempo para encontrar o erro na localidade e corrigi-lo antes de fazer isso.

Eu quero primeiro colocar o site no ar. Se a tradução estiver quebrada pelo crowdin, não tenho como consertá-la.