Перепрограммирование не удалось из-за взаимной блокировки

У меня есть большая база данных (9,2 миллиона постов) с множеством мега-тем (некоторые содержат более 150 тысяч постов!). При попытке восстановления на другой сервер во время переназначения на новое имя хоста возникает следующая ошибка:

Восстановление загрузок, это может занять некоторое время...                                                   
Оптимизация иконок сайта...                                                                                      
Посты будут пересобраны фоновой задачей в Sidekiq. До завершения этого процесса изображения могут отсутствовать.
Вы можете ускорить процесс, вручную запустив команду "rake posts:rebake_uncooked_posts"  
ОШИБКА: ERROR: deadlock detected                                              
DETAIL:  Process 960 waits for ShareLock on transaction 4765; blocked by process 2184.                   
Process 2184 waits for ShareLock on transaction 4915; blocked by process 960.                                    HINT:  See server log for query details.
CONTEXT:  while updating tuple (566294,13) in relation "posts"                                         

Есть ли способ разрешить эту взаимную блокировку?

Это происходило на стандартном виртуальном сервере с 8 ГБ оперативной памяти.

При попытке выполнить пересборку я сталкивался с аналогичной проблемой на этом сайте, размещённом на достаточно быстром сервере баз данных с 16 ГБ оперативной памяти, а также на отдельном веб-сервере с 16 ГБ оперативной памяти. Оба сервера также обслуживали несколько других небольших сайтов с низкой нагрузкой.

Кажется ли вероятным, что проблема связана с мега-темами? Есть ли решение, кроме разделения их на более мелкие?

Это намного проще, если остановить процессы web и sidekiq во время переназначения, чтобы не было конкуренции за блокировки.

Огромное спасибо! Это помогло. И так очевидно, как только вы это предложили.

Извините, что поднимаю этот вопрос, но мы столкнулись с той же проблемой.

Как остановить процессы web и sidekiq?

Поскольку вы используете среду разработки, просто нажмите Control-C

Как правильно остановить Docker?

  sv stop unicorn
  sv stop sidekiq

Unicorn — это веб-сервер, верно?