From f75fba0531a0f2cfd0797f9f94023090b401f05b Mon Sep 17 00:00:00 2001
From: Claire <claire.github-309c@sitedethib.com>
Date: Mon, 20 Mar 2023 20:02:58 +0100
Subject: [PATCH] Fix crash in `tootctl` commands making use of parallelization
 when Elasticsearch is enabled (#24182)

---
 lib/mastodon/cli_helper.rb | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/lib/mastodon/cli_helper.rb b/lib/mastodon/cli_helper.rb
index a78a28e27..4e304c903 100644
--- a/lib/mastodon/cli_helper.rb
+++ b/lib/mastodon/cli_helper.rb
@@ -53,14 +53,16 @@ module Mastodon
 
               progress.log("Processing #{item.id}") if options[:verbose]
 
-              result = ActiveRecord::Base.connection_pool.with_connection do
-                yield(item)
-              ensure
-                RedisConfiguration.pool.checkin if Thread.current[:redis]
-                Thread.current[:redis] = nil
-              end
+              Chewy.strategy(:mastodon) do
+                result = ActiveRecord::Base.connection_pool.with_connection do
+                  yield(item)
+                ensure
+                  RedisConfiguration.pool.checkin if Thread.current[:redis]
+                  Thread.current[:redis] = nil
+                end
 
-              aggregate.increment(result) if result.is_a?(Integer)
+                aggregate.increment(result) if result.is_a?(Integer)
+              end
             rescue => e
               progress.log pastel.red("Error processing #{item.id}: #{e}")
             ensure