Объединение пользователей сломано?

После успешного обновления установки Discourse с версии 2.7 beta 2 до 2.7 beta 3 я только что попытался выполнить функцию «Объединить пользователей» для учётной записи, у которой между двумя профилями было всего около 270 сообщений.

Спустя 45 минут сайт всё ещё отображается в сером цвете с сообщением «Изменение владельца сообщений». Я предполагаю, что какой-то процесс где-то завис.

Мой форум в остальном был практически неактивен (других вошедших пользователей не было).

При поиске подсказок на этом форуме я наткнулся на сообщение, в котором упоминается плагин Merge Users, который «может скоро перестать работать», теперь что функциональность объединёния пользователей включена в сам Discourse (начиная с версии 2.5.0 beta 3).

У меня всё ещё установлен этот плагин (версия 0.1), хотя я, как оказалось, не инициировал объединение через меню плагинов, а использовал кнопку «Объединить», расположенную непосредственно на странице профиля пользователя (в правом нижнем углу). Я предполагаю, что это означает вызов встроенного инструмента Discourse, а не плагина?

Я не уверен, виноват ли плагин или сам Discourse в зависании процесса.

Я могу получить доступ к сайту как администратор через другую сессию браузера и вижу, что оба профиля всё ещё существуют, хотя все сообщения старого профиля, кроме 9, которые объединяются, теперь связаны с новым целевым аккаунтом. Рядом с этой цифрой я вижу предупреждение, которое может, а может и не быть связано с этой конкретной попыткой объединения: «Невозможно удалить все сообщения. Некоторые сообщения старше 60 дней. (Параметр delete_user_max_post_age.)».

Как оказалось, ВСЕ успешно объединённые сообщения были старше 60 дней, поэтому я не понимаю, как интерпретировать это предупреждение.

Что мне делать сейчас, чтобы корректно завершить процесс (предполагая, что он всё ещё выполняется) и предотвратить повреждение базы данных?

Ладно, я сдался и обновил окно браузера, которое было заблокировано, и сайт продолжил работу, как будто ничего не произошло — показывая ту же старую версию учётной записи пользователя с 9 неслитыми постами.

Я попытался снова, установив delete_user_max_post_age в 99999 — результат тот же. Затем я попробовал объединение в обратном порядке — снова тот же результат.

В конце концов я попробовал ещё раз с помощью плагина, и это сработало идеально с первого раза, заняв всего минуту или две.

Итак, исходя из имеющихся данных, функция слияния в версии 2.7 beta 3 Discourse каким-то образом сломана, но плагин всё ещё работает.

У меня всё работает нормально. Возможно, проблема была связана с установленным плагином? Здесь это классифицируется как #plugin:broken-plugin. Рад, что вы в итоге всё починили.

Спасибо. Я удалю плагин, так как, если в следующий раз ситуация с нативным процессом слияния не улучшится, я всегда смогу, полагаю, переустановить его.

Интересно, повлияли ли возраст или источник объединяемых сообщений? Все эти сообщения были импортированы из ныне несуществующего форума Yahoo Groups, и процесс импорта создал «зомби-пользователей», для которых не существовало соответствующего активного пользователя с указанным адресом электронной почты. Думаю, этот старый аккаунт пользователя является примером такой ситуации.