about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-11-09 01:41:52 +0100
committerGitHub <noreply@github.com>2020-11-09 01:41:52 +0100
commitb0893291ef32b9fb27ae57550775bc21f42d7888 (patch)
treec7626467f417ecd577371f4f15f7e399e4b9ee29
parentcc98f967b13b57c43e2e32e4670c26cd8202fca7 (diff)
Fix Move handler not being triggered when failing to fetch target (#15107)
When failing to fetch the target account, the ProcessingWorker fails
as expected, but since it hasn't cleared the `move_in_progress` flag,
the next attempt at processing skips the `Move` activity altogether.

This commit changes it to clear the flag when encountering any
unexpected error on fetching the target account. This is likely to
occur because, of, e.g., a timeout, when many instances query the
same actor at the same time.
-rw-r--r--app/lib/activitypub/activity/move.rb3
1 files changed, 3 insertions, 0 deletions
diff --git a/app/lib/activitypub/activity/move.rb b/app/lib/activitypub/activity/move.rb
index 2103f503f..7e073f64d 100644
--- a/app/lib/activitypub/activity/move.rb
+++ b/app/lib/activitypub/activity/move.rb
@@ -20,6 +20,9 @@ class ActivityPub::Activity::Move < ActivityPub::Activity
 
     # Initiate a re-follow for each follower
     MoveWorker.perform_async(origin_account.id, target_account.id)
+  rescue
+    unmark_as_processing!
+    raise
   end
 
   private