PG::StringDataRightTruncation (ERREUR : valeur trop longue pour le type character varying(500))

Lorsque j’essaie de modifier le premier message de ce sujet, je reçois une erreur HTTP 500. Les journaux d’erreurs signalent cette erreur fatale :

Message (7 copies signalées)

PG::StringDataRightTruncation (ERREUR : la valeur est trop longue pour le 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
2 « J'aime »

On dirait que cela a un lien avec l’URL, qui dépasse 500 caractères.

Nous devrions certainement la tronquer et éventuellement la sauter, sans provoquer d’erreur 500.

Quelle est la longueur maximale de l’URL dans le message ?

4 « J'aime »

Merci @sam,

la seule URL de l’article provient d’une citation. L’URL est la suivante :

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 « J'aime »

Cela ne fait que 159 caractères… voyons ce qui se passe ici :

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

C’est étrange… impossible de reproduire avec cette URL.

Peut-être lié au fait que c’est le premier message ?

2 « J'aime »

Cela est lié au titre du sujet. Lorsque j’ai modifié le titre du sujet pour le rendre plus court, les erreurs ont cessé. Lorsque j’ai essayé de le restaurer à sa longueur d’origine, une erreur 500 est apparue lors de la mise à jour du titre. Après cette erreur 500, j’ai actualisé la page et le titre a été mis à jour.

3 « J'aime »

J’ai investigué un peu plus loin :

Cela se produit lors de la mise à jour du message « lié » (celui qui est cité) pour y inclure un lien vers la citation. Le lien (en raison d’un titre très long) dépasse les 500 caractères, ce qui déclenche ce problème.

Le lien réel sur le message lié n’est jamais mis à jour si le titre est très long.

4 « J'aime »

@Osama, peux-tu ajouter à ta liste d’investigations une troncation plus tolérante dans le cœur, idéalement en la reproduisant dans un cas de test.

Ce n’est certainement pas urgent, quand tu auras un moment.

3 « J'aime »

Désolé de relancer, mais ce bug a-t-il été résolu ? Aujourd’hui, j’ai constaté une deuxième occurrence de ce problème sur notre forum…

Merci pour tout votre travail acharné ! :smiley:

1 « J'aime »

Nous sommes malheureusement un peu occupés. C’est sur la liste de @Osama. Nous espérons pouvoir nous en occuper d’ici les 4 prochaines semaines.

4 « J'aime »

@chrispanag le problème est maintenant résolu :

Comme vous l’avez dit, l’erreur se produisait lors de la génération d’un lien retour depuis le message lié vers le message original, lorsque ce dernier avait un titre long.

3 « J'aime »

Merci beaucoup pour votre correction ! :smiley:

1 « J'aime »

Ce sujet a été automatiquement fermé après 2 jours. De nouvelles réponses ne sont plus autorisées.