PG::StringDataRightTruncation (ERROR: value too long for type character varying(500) )

When I try to edit the first post of this topic I get back an HTTP 500 error code. The error logs are reporting this fatal error happening:

Message (7 copies reported)

PG::StringDataRightTruncation (ERROR:  value too long for type 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
1 Like

Looks like something to do with the URL, it is longer than 500 chars.

We should certainly be truncating and possibly skipping, not result in a 500.

What is the longest URL in the post?

3 Likes

Thanks @sam,

the only URL the post has is from a quote. The URL is this:

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

1 Like

That is only 159 chars … lets see what happens here:

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

So odd… unable to repro with that url.

Maybe somehow related to it being first post?

1 Like

It has to do with the topic’s title. When I edited the topic’s title to something shorter, the errors stopped. When I try to restore it to its original length, it showed me a 500 error while updating the title. After the 500 error, I refreshed and the title was updated.

2 Likes

I investigated it a bit further:

This happens on the update of the “linked” post (the one that is quoted) to include a link to the quotation. The link (because of the long title) ends up to be over 500 chars long, which triggers this issue.

The actual link on the linked post, never gets updated if the title is very long.

3 Likes

@Osama can you add to your list to investigate a more forgiving truncation in core, ideally you can repro in a test case.

Certainly not urgent, when you have a chance.

3 Likes

Sorry to ping this, but was this bug tackled? Today, I encountered a second instance of this happening on our forum…

Thanks for all your hard work! :smiley:

We are sadly a bit busy, it is on @Osama’s list, hope we can get to it some time in the next 4 weeks.

3 Likes