La ricerca restituisce "500 Internal Server Error" per alcune frasi di ricerca

Ciao,

abbiamo notato problemi sporadici nell’utilizzo della funzione di ricerca di Discourse.

Osservazioni

Nelle ultime settimane, abbiamo rilevato risposte sporadiche “500 Internal Server Error” durante le ricerche su https://community.hiveeyes.org/. Anche se potrebbe sembrare strano, crediamo che il problema dipenda effettivamente dalla frase di ricerca.

Il problema si verifica solo quando si utilizza la ricerca rapida vicino al menu hamburger. Quando si naviga alla pagina di ricerca /search e si esegue la ricerca da lì, tutto funziona correttamente.

Ora, dato che anche altri hanno segnalato questo problema sulla nostra piattaforma, abbiamo finalmente deciso di indagare a fondo.

Verificate voi stessi

Abbiamo avuto la fortuna di riuscire a riprodurlo su Meta. Quindi, cercando “search returns 500”, siamo riusciti a innescare l’errore in modo deterministico. Accade anche senza essere loggati nel sistema.

La risposta è:

La frase di ricerca è la colpevole – davvero?

È quello che sembra. Cercare “search croaks 500” nello stesso modo non innesca il problema.

Conclusione

Troviamo questa cosa sia strana che divertente al punto da voler condividere le nostre osservazioni con voi. Anche se non stiamo soffrendo particolarmente, credo che vorrete indagare se avete tempo.

Grazie per l’ascolto e cordiali saluti,
Andreas.

P.S.: Innescare quell’errore cercando il problema su Meta rende tutto ancora più divertente, dato che credo che tutti noi amiamo ancora le ricorsioni.

3 Mi Piace

Hmm, sì. Questo è l’errore che appare nei log

URI::InvalidURIError (bad URI(is not URI?): "http:error]")
/usr/local/lib/ruby/2.6.0/uri/rfc3986_parser.rb:67:in `split'

/usr/local/lib/ruby/2.6.0/uri/rfc3986_parser.rb:67:in `split'
/usr/local/lib/ruby/2.6.0/uri/rfc3986_parser.rb:73:in `parse'
/usr/local/lib/ruby/2.6.0/uri/common.rb:234:in `parse'
/usr/local/lib/ruby/2.6.0/uri/common.rb:737:in `URI'
/var/www/discourse/lib/search/grouped_search_results.rb:83:in `block in blurb_for'
/usr/local/lib/ruby/2.6.0/set.rb:338:in `each_key'
/usr/local/lib/ruby/2.6.0/set.rb:338:in `each'
/var/www/discourse/lib/search/grouped_search_results.rb:82:in `blurb_for'
/var/www/discourse/lib/search/grouped_search_results.rb:60:in `blurb'
/var/www/discourse/app/serializers/search_post_serializer.rb:9:in `blurb'

Grazie per la segnalazione @amotl

5 Mi Piace

Grazie @amotl e @david, ora è stato risolto qui su meta tramite FIX: skip invalid URLs when checking for audio/video in search blurbs · discourse/discourse@0dfc594 · GitHub

6 Mi Piace

Gentili @david e @pmusaraj,

grazie per la rapida risposta, dalla conferma alla risoluzione effettiva. Non vediamo l’ora di ricevere questa correzione. Potrebbe essere inclusa nella versione 2.4.0.beta7?

Cordiali saluti,
Andreas.

2 Mi Piace

Sì, sarà incluso nella prossima beta.

6 Mi Piace

Questo argomento è stato automaticamente chiuso dopo 5 giorni. Non sono più consentite nuove risposte.