Ich habe gestern Abend nach der Einrichtung eines CDN meine Beiträge neu gebacken, und alles lief gut, bis auf einen Jobs::ProcessPost-Job in Sidekiq, der immer wieder fehlschlägt und wiederholt wird. Genauer gesagt, schlägt er mit einem Wrapped ArgumentError: Attributes per element limit exceeded Fehler fehl. Der Backtrace von /logs sieht wie folgt aus…
Nachricht (13 Kopien gemeldet)
Job-Ausnahme: 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, ich habe den Kopieren-Button auf der Log-Seite verwendet, was den Backtrace anscheinend abgeschnitten hat. Wenn Sie mehr benötigen, kann ich ihn Ihnen besorgen. Was ich sagen kann ist, dass er in
cp.post_processinnerhalb derexecute-Methode vonProcessPostgelangt.cp = CookedPostProcessor.new(post, args) cp.post_process(new_post: args[:new_post])und von dort scheint er zu
post_process_oneboxeszu wechseln.Nun, ich habe tiefer recherchiert und konnte den spezifischen Beitrag über die Rails-Konsole ausfindig machen. Er enthält eine einzige URL, keine Bilder, keine Bearbeitungshistorie.
Okay, und nachdem ich die betreffende URL weiter untersucht habe, ist sie völliger Müll. Es ist ein Blogbeitrag, bei dem sie den gesamten Beitrag wortwörtlich in die Meta-Tags og:description und twitter:description kopiert haben. Aber schlimmer noch, und was ich als Ursache des Problems vermute, der Text enthält einige " Zeichen, die sie nicht escaped haben, wodurch beide Tags völlig ruiniert werden und der größte Teil des Textes wie Attribute aussieht.
Der Inhalt der spezifischen URL ist also kompletter Müll. Ich schätze, es wäre besser, wenn Dinge wie diese speziell aufgegriffen würden, anstatt den Sidekiq-Job wiederholt abstürzen zu lassen. Ich bin mir nicht sicher, ob das etwas ist, das Sie sich ansehen möchten?
Ansonsten bleiben mir nur noch ein paar Fragen. Erstens, wird er irgendwann aufhören zu versuchen, diesen Job auszuführen, oder muss ich etwas tun? Zweitens, wird irgendetwas durcheinander geraten, wenn der Job nicht erfolgreich ausgeführt werden kann, nur mit etwas Text und dieser einen URL?