ActivityPub-Eingangsbox-Anfragen verursachen Pitchfork-Worker-Timeouts

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.