Ich beobachte wiederkehrende Pitchfork-Worker-Timeouts auf meiner Discourse-Instanz (2026.10.0-latest).
Nach Analyse der Produktionslogs waren 12 von 13 Timeout-Warnungen mit ActivityPub-Inbox-Anfragen verbunden, insbesondere während der Auflösung entfernter Akteure zur Überprüfung der HTTP-Signatur.
Der relevante Backtrace:
Pitchfork worker is about to timeout,
dumping backtrace for main thread
excon/socket.rb:368:in 'IO.select'
excon/socket.rb:79:in 'Excon::Socket#readline'
excon.rb:255:in 'Excon.get'
discourse_activity_pub/request.rb:70:in 'Request#perform'
discourse_activity_pub/request.rb:34:in 'Request#get_json_ld'
discourse_activity_pub/json_ld.rb:71:in 'JsonLd.request_object'
discourse_activity_pub/a_p/object.rb:251:in 'AP::Object.resolve'
signature_verification.rb:254:in 'actor_from_key_id'
signature_verification.rb:61:in 'signed_request_actor'
inboxes_controller.rb:31:in 'process_json'
inboxes_controller.rb:10:in 'create'
Es scheint, dass die Auflösung entfernter Akteure synchron während der Inbox-Verarbeitung erfolgt und damit potenziell Pitchfork-Worker blockiert, wenn entfernte Server langsam antworten.
Ich habe außerdem activity_pub_verbose_logging für etwa 24 Stunden aktiviert und festgestellt, dass wiederholt versucht wird, gelöschte Mastodon-Akteure aufzulösen, was zu HTTP 410 Gone führt und zahlreiche Warnungen über fehlgeschlagene Delete-Aktivitätsverarbeitungen erzeugt.
Beispiel:
[Discourse Activity Pub] GET request to
https://mastodon.social/ap/users/115676297044305006
failed: {"error":"Gone"}
[Discourse Activity Pub] Failed to resolve actor
[Discourse Activity Pub] Failed to process Delete activity:
Unable to create actor
Ob diese fehlgeschlagenen Delete-Aktivitäten direkt mit den Worker-Timeouts zusammenhängen, konnte ich noch nicht bestätigen.
Ist die synchrone Auflösung entfernter Akteure während der Signaturprüfung der Inbox das erwartete Verhalten? Könnten die Timeout-Handhabung oder das Caching verbessert werden, um das Blockieren von Web-Workern zu verhindern?
Gerne stelle ich zusätzliche, bereinigte Logs bereit, falls benötigt.