ArgumentError (limite d'attributs par élément dépassée) de rebake

J’ai donc réanalysé mes publications la nuit dernière après avoir configuré un CDN, et tout s’est bien passé, à l’exception d’un seul travail Jobs::ProcessPost dans Sidekiq qui continue d’échouer et de réessayer. Plus précisément, il échoue avec une erreur Wrapped ArgumentError: Attributes per element limit exceeded. La trace d’appels de /logs est la suivante…

Message (13 copies signalées)

Job exception: Attributes per element limit exceeded

Backtrace

/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.13.8-x86_64-linux/lib/nokogiri/html5/document.rb:85:in `parse'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.13.8-x86_64-linux/lib/nokogiri/html5/document.rb:85:in `do_parse'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.13.8-x86_64-linux/lib/nokogiri/html5/document.rb:43:in `parse'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/nokogiri-1.13.8-x86_64-linux/lib/nokogiri/html5.rb:31:in `HTML5'
/var/www/discourse/lib/retrieve_title.rb:21:in `extract_title'
/var/www/discourse/lib/retrieve_title.rb:91:in `block in fetch_title'
/var/www/discourse/lib/final_destination.rb:499:in `block (4 levels) in safe_get'
/var/www/discourse/lib/final_destination.rb:496:in `catch'
/var/www/discourse/lib/final_destination.rb:496:in `block (3 levels) in safe_get'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/net-protocol-0.1.3/lib/net/protocol.rb:498:in `call_block'

Hmm, j’ai utilisé le bouton de copie sur la page des logs, ce qui semble avoir tronqué la trace d’appels. Si vous avez besoin de plus d’informations, je peux vous les fournir. Ce que je peux dire, c’est qu’il entre dans cp.post_process

cp = CookedPostProcessor.new(post, args)
cp.post_process(new_post: args[:new_post])

dans la méthode execute de ProcessPost, et de là, il semble passer à post_process_oneboxes.

Maintenant, j’ai enquêté plus en profondeur et j’ai réussi à localiser la publication spécifique à l’aide de la console Rails. Elle contient une seule URL, aucune image, aucun historique de modification.

Ok, et ayant examiné l’URL en question de plus près, c’est un charabia complet et absolu. C’est un article de blog, où ils ont copié l’intégralité de l’article mot pour mot dans les balises méta og:description et twitter:description. Mais, pire que cela, et ce qui, je suppose, cause le problème, le texte inclut des caractères " qu’ils n’ont pas échappés, ce qui fausse complètement ces deux balises et fait ressembler la majeure partie du texte à des attributs.

Donc, le contenu de l’URL spécifique est un charabia complet. Je suppose qu’il serait peut-être préférable que des choses comme celles-ci soient détectées spécifiquement, au lieu de faire planter à plusieurs reprises le travail Sidekiq, je ne sais pas si c’est quelque chose que vous aimeriez examiner ?

Sinon, cela ne laisse que quelques questions de ma part. Premièrement, va-t-il arrêter d’essayer d’exécuter ce travail éventuellement ou y a-t-il quelque chose que je dois faire ? Deuxièmement, y a-t-il quelque chose qui sera gâché si le travail ne parvient pas à s’exécuter avec succès, n’ayant que du texte et cette seule URL ?

2 « J'aime »

Oups !!!

Oui, nous devrions gérer ce genre de problèmes automatiquement… PR ici, il devrait être fusionné bientôt.

Merci pour le débogage approfondi ici !

3 « J'aime »

Merci @sam, je suis heureux que cela ait été utile.

2 « J'aime »