Desde a nossa atualização 3.1.0 hoje, a nossa Pesquisa deixou de funcionar.
A nossa equipa de sysadmin identificou um problema e forneceu-nos este log afirmando que se trata de um erro de aplicação.
Mais alguém está a ter este problema e quais podem ser as pistas para que possamos resolver o problema nós mesmos? Vejo que a pesquisa funciona perfeitamente no Discourse Meta.
Started GET "/search?q=37%20%20realm&page=1" for [IP_REDACTED] at 2023-01-13 11:19:36 +0000
Processing by SearchController#show as JSON
Parameters: {"q"=>"37 realm", "page"=>"1"}
Completed 500 Internal Server Error in 4ms (ActiveRecord: 0.0ms | Allocations: 1555)
ArgumentError (wrong number of arguments (given 1, expected 0))
lib/search.rb:285:in `execute'
app/controllers/search_controller.rb:73:in `show'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:366:in `call'
config/initializers/008-rack-cors.rb:24:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'
Failed to handle exception in exception app middleware : ArgumentError : wrong number of arguments (given 1, expected 0)
Nossa busca está completamente quebrada ao rodar contra o PostgreSQL 14, e é por isso que ainda estamos distribuindo o PostgreSQL 13 para todos que seguem nossa instalação padrão.
Eventualmente, corrigiremos isso, pois faremos o upgrade para o PostgreSQL 15 (ou 16) um dia, mas pode levar um tempo.
Obrigado. Estamos investigando como isso pode ter acontecido SE já tivemos outra versão do PostgreSQL anteriormente. Retornaremos assim que identificarmos o problema.
Vemos o requisito “Postgres 13+” aqui. Posso estar errado ao sugerir à sua equipe que adicione um aviso de que o Discourse suporta apenas versões 13.X? Talvez um aviso explícito de que as versões 14/15/… não são suportadas também seria útil em casos como o nosso.
Veja bem, tínhamos a versão 14 pelo menos desde dezembro, e tínhamos a versão estável do Discourse instalada meses antes. Recentemente, voltamos para a versão tests-passed, a busca funcionou como esperado. Hoje, atualizamos de 2.9.0.beta14 para 3.1.0.beta1 e agora está quebrado.
Incompreensível, mas esse foi o problema no meu caso (mesmos sintomas - embora com PostgreSQL13)
Tenho certeza que Richard vai corrigir em breve, enquanto isso um fork e uma edição simples são uma solução.
Ah. Que chato. Tenho um site que, acidentalmente, atualizei para o PG14 há um tempo e achei que ficaria tudo bem.
Acabei de fazer algumas buscas e elas não estavam obviamente terrivelmente quebradas. E o site é majoritariamente em chinês, então eu realmente não conseguiria dizer de qualquer forma.
Quão quebrada está e quão difícil será consertá-la?
O modo de segurança afeta apenas o lado do cliente. Esse erro está ocorrendo no servidor. Para verificar se o erro está relacionado ao plugin de respostas privadas, você precisará desinstalar completamente esse plugin.
Este erro parece estar relacionado a uma incompatibilidade de plugin com o Ruby 3.1.
Esse plugin realmente quebra a busca e aciona o erro 500.
Mas rodar PostgreSQL 14+ também quebrará a busca, mas de uma forma mais sutil, onde muitos resultados que seriam retornados no pg13 não retornarão no pg14+.
Então @kinetiksoft pode remover o plugin e reconstruir para que a busca não dê erro, mas ela ainda não funcionará normalmente por causa da versão do pg.
Você verificou a documentação sobre como executar o PostgreSQL externo? Está aqui no Meta, não no github. Toda a documentação está visível em Documentation - Discourse Meta
Desculpem todos! O plugin de respostas privadas estava realmente quebrando a busca (ou: Ruby 3.1 estava quebrando o plugin).
Agora está funcionando novamente.