PG::StringDataRightTruncation (ERRO: valor muito longo para o tipo character varying(500))

Quando tento editar a primeira postagem de este tópico, recebo um código de erro HTTP 500. Os logs de erro relatam este erro fatal ocorrendo:

Mensagem (7 cópias relatadas)

PG::StringDataRightTruncation (ERRO: valor muito longo para o 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 curtidas

Parece ser algo relacionado à URL, ela tem mais de 500 caracteres.

Com certeza deveríamos truncar e talvez ignorar, em vez de resultar em um erro 500.

Qual é a URL mais longa na postagem?

4 curtidas

Obrigado, @sam,

a única URL da postagem é de uma citação. A URL é esta:

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 curtidas

Isso são apenas 159 caracteres… vamos ver o que acontece aqui:

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

Estranho… não consegui reproduzir com esse URL.

Talvez esteja relacionado ao fato de ser a primeira postagem?

2 curtidas

Isso tem a ver com o título do tópico. Quando editei o título do tópico para algo mais curto, os erros pararam. Ao tentar restaurá-lo ao seu comprimento original, foi exibido um erro 500 durante a atualização do título. Após o erro 500, atualizei a página e o título foi atualizado.

3 curtidas

Investiguei um pouco mais:

Isso ocorre na atualização do post “vinculado” (aquele que é citado) para incluir um link para a citação. O link (devido ao título longo) acaba tendo mais de 500 caracteres, o que desencadeia esse problema.

O link real no post vinculado nunca é atualizado se o título for muito longo.

4 curtidas

@Osama, você pode adicionar à sua lista a investigação de um truncamento mais permissivo no core? Idealmente, você conseguiria reproduzir em um caso de teste.

Com certeza não é urgente, quando tiver uma oportunidade.

3 curtidas

Desculpe incomodar, mas esse bug foi resolvido? Hoje, encontrei uma segunda ocorrência disso acontecendo em nosso fórum…

Obrigado por todo o seu trabalho árduo! :smiley:

1 curtida

Infelizmente estamos um pouco ocupados. Isso está na lista do @Osama; esperamos poder resolver isso em algum momento nas próximas 4 semanas.

4 curtidas

@chrispanag o problema foi resolvido agora:

Como você disse, o erro ocorria ao gerar um link de retorno da postagem vinculada para a postagem original, caso a postagem original tivesse um título longo.

3 curtidas

Muito obrigado pela sua correção! :smiley:

1 curtida

Este tópico foi fechado automaticamente após 2 dias. Novas respostas não são mais permitidas.