Sto riscontrando timeout ripetuti dei worker Pitchfork sulla mia istanza Discourse (2026.10.0-latest).
Dopo aver analizzato i log di produzione, 12 avvisi su 13 relativi ai timeout erano collegati a richieste alla casella in entrata di ActivityPub, in particolare durante la risoluzione degli attori remoti per la verifica delle firme HTTP.
Il backtrace rilevante:
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'
Sembra che la risoluzione degli attori remoti venga eseguita in modo sincrono durante l’elaborazione della casella in entrata, con il potenziale di bloccare i worker Pitchfork quando i server remoti rispondono lentamente.
Ho inoltre abilitato activity_pub_verbose_logging per circa 24 ore e ho notato tentativi ripetuti di risolvere attori Mastodon eliminati che restituiscono HTTP 410 Gone, causando numerosi avvisi di errore nell’elaborazione delle attività Delete.
Esempio:
[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
Non ho ancora confermato se queste attività Delete fallite siano direttamente correlate ai timeout dei worker.
La risoluzione sincrona degli attori remoti durante la verifica della firma della casella in entrata è un comportamento previsto? La gestione dei timeout o la cache potrebbero essere migliorate per evitare di bloccare i worker web?
Sono disponibile a fornire ulteriori log anonimizzati se necessario.