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 ?