PG::StringDataRightTruncation (ERRORE: valore troppo lungo per il tipo character varying(500))

Quando provo a modificare il primo post di questo argomento, ricevo un codice di errore HTTP 500. I log degli errori riportano questo errore fatale:

Messaggio (7 copie riportate)

PG::StringDataRightTruncation (ERROR:  valore troppo lungo per il tipo character varying(500)
)
app/models/topic_link.rb:240:in `safe_create_topic_link'
app/models/topic_link.rb:334:in `ensure_entry_for'
app/models/topic_link.rb:128:in `block (2 levels) in extract_from'
app/models/topic_link.rb:126:in `block in extract_from'
app/models/topic_link.rb:124:in `each'
app/models/topic_link.rb:124:in `extract_from'
lib/post_revisor.rb:224:in `revise!'
app/controllers/topics_controller.rb:379:in `update'
app/controllers/application_controller.rb:358:in `block in with_resolved_locale'
app/controllers/application_controller.rb:358:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:177:in `call'

Backtrace

rack-mini-profiler (2.3.1) lib/patches/db/pg.rb:113:in `exec'
rack-mini-profiler (2.3.1) lib/patches/db/pg.rb:113:in `async_exec'
mini_sql (1.0.1) lib/mini_sql/postgres/connection.rb:201:in `run'
mini_sql (1.0.1) lib/mini_sql/postgres/connection.rb:56:in `query_single'
app/models/topic_link.rb:240:in `safe_create_topic_link'
app/models/topic_link.rb:334:in `ensure_entry_for'
app/models/topic_link.rb:128:in `block (2 levels) in extract_from'
activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/database_statements.rb:280:in `block in transaction'
activerecord (6.0.3.3) lib/active_record/connection_adapters/abstract/transaction.rb:280:in `block in within_new_transaction'
activesupport (6.0.3.3) lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'

Env

HTTP HOSTS: rembetiko.gr
2 Mi Piace

Sembra che abbia a che fare con l’URL, che è più lungo di 500 caratteri.

Dovremmo certamente troncarlo e forse saltarlo, senza generare un errore 500.

Qual è l’URL più lungo nel post?

4 Mi Piace

Grazie @sam,

l’unico URL nel post proviene da una citazione. L’URL è questo:

https://rembetiko.gr/t/%CE%BC%CE%B1%CE%BA%CE%AC%CE%BC-%CE%B2%CF%85%CE%B6%CE%B1%CE%BD%CF%84%CE%B9%CE%BD%CE%BF%CE%AF-%CE%B4%CF%81%CF%8C%CE%BC%CE%BF%CE%B9/6034/30

2 Mi Piace

Sono solo 159 caratteri… vediamo cosa succede qui:

Μακάμ - Βυζαντινοί Δρόμοι - #30 από kwstas_ferris - Παραδοσιακή μουσική - Ρεμπέτικο Φόρουμ

Strano… non riesco a riprodurlo con quell’URL.

Forse è in qualche modo correlato al fatto che sia il primo post?

2 Mi Piace

Ha a che fare con il titolo dell’argomento. Quando ho modificato il titolo dell’argomento rendendolo più breve, gli errori sono cessati. Quando ho provato a ripristinarlo alla sua lunghezza originale, mi è stato mostrato un errore 500 durante l’aggiornamento del titolo. Dopo l’errore 500, ho ricaricato la pagina e il titolo è stato aggiornato.

3 Mi Piace

Ho indagato un po’ più a fondo:

Ciò accade durante l’aggiornamento del post “collegato” (quello citato) per includere un link alla citazione. Il link (a causa del titolo lungo) supera i 500 caratteri, innescando questo problema.

Il link effettivo nel post collegato non viene mai aggiornato se il titolo è molto lungo.

4 Mi Piace

@Osama, puoi aggiungere alla tua lista di investigare una troncatura più permissiva nel core; idealmente, puoi riprodurla in un caso di test.

Certamente non urgente, quando hai modo.

3 Mi Piace

Scusa per il ping, ma è stato risolto questo bug? Oggi ho riscontrato un secondo caso di questo problema sul nostro forum…

Grazie per tutto il vostro duro lavoro! :smiley:

1 Mi Piace

Siamo purtroppo un po’ impegnati, è nella lista di @Osama, speriamo di poterlo fare entro le prossime 4 settimane.

4 Mi Piace

@chrispanag il problema è stato risolto:

Come hai detto, l’errore si verificava quando si generava un link di ritorno dal post collegato al post originale, se il post originale aveva un titolo lungo.

3 Mi Piace

Grazie mille per la tua correzione! :smiley:

1 Mi Piace

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