Ich habe einen Verdacht: Wir speisen unsere Discourse-Instanz auch mit E-Mails aus Mailinglisten. Wenn eine alte Nachricht, die zur Moderation zurückgehalten wurde, vom Moderator der Mailingliste freigegeben wird, könnte sie vom Discourse-Filter als zu alt eingestuft werden. Aufgrund des break wird die Schleife verlassen. Somit könnte eine einzelne alte Nachricht die weitere Verarbeitung komplett stoppen.
Ach ja, und aufgrund der Reihenfolge dieses POP-E-Mail-Servers wird von ältesten zu neuesten Nachrichten verarbeitet.
Wie sieht es mit diesem Patch aus, @gerhard? Bevorzuge außerdem Discourse.handle_job_exception, falls möglich, um andere Fehler ordnungsgemäß zu melden.
- break if mail_too_old?(mail_string)
+ next if mail_too_old?(mail_string)
Danke für die Erklärung. Das ergibt Sinn.
@riking Ich stimme zu, eine ordentliche Lösung sollte handle_job_exception verwenden. Fühl dich frei, einen PR zu erstellen. ![]()
Das sollte es beheben.