ユーザーのマージが壊れた?

Discourseのインストールをベータ版 2.7 beta 2 から 2.7 beta 3 へ正常に更新した直後、投稿数が270件程度しかない2つのアカウントを持つユーザーの「ユーザーマージ」を試みました。
45分経っても、ウェブサイトはグレーアウトしたまま「投稿の所有権を変更中」と表示されており、どこかで何らかのプロセスがフリーズしたのではないかと推測しています。

当フォーラムはそれ以外ではほとんどアクティビティがなく(ログイン中のユーザーもいませんでした)。

このフォーラム内で手がかりを探していたところ、Discourseが2.5.0 beta 3よりネイティブ機能としてマージ機能を含めるようになったことで、間もなく機能しなくなる可能性がある「Merge Users」プラグインについて言及した投稿を見つけました。

私はまだそのプラグイン(バージョン0.1)をインストールしたままですが、実際にはプラグインメニューからマージを開始したわけではなく、ユーザーのプロフィールページ(右下)にある「Merge」ボタンを使用しました。つまり、プラグインではなくネイティブのDiscourseツールを呼び出したということでしょうか?

プロセスが停止した原因がプラグインにあるのか、それともDiscourse自体にあるのかはわかりません。

別のブラウザセッションから管理者としてサイトにはアクセスでき、両方のプロフィールがまだ存在していることが確認できます。ただし、マージ対象の古い投稿のうち9件を除くすべての投稿が、新しい意図されたアカウントに関連付けられています。その数字の横には、この特定のマージ試行に関連するものかどうかは不明ですが、以下の警告が表示されています:「すべての投稿を削除できません。一部の投稿は60日以上前に投稿されています(delete_user_max_post_age設定のため)。」

実際、正常にマージされた投稿はすべて60日以上前のものだったため、この警告の意味がわかりません。

現在、このプロセス(まだ続いていると仮定して)をエレガントに終了させ、データベースの破損を防ぐにはどうすればよいでしょうか?

「いいね!」 1

OK、グレーアウトしていたブラウザウィンドウをリフレッシュして諦めたら、サイトは何事もなかったかのように再開し、9件の未マージ投稿が残ったままの古いバージョンのユーザーアカウントが表示されました。

delete_user_max_post_age を 99999 に設定してもう一度試しましたが、同じ結果でした。その後、逆方向にマージを試みましたが、やはり同じ結果でした。

結局、プラグインを使って再度試したところ、初めて完璧に動作し、所要時間はわずか1〜2分でした。

したがって、現時点の証拠に基づけば、Discourse 2.7 ベータ 3 のマージ機能は何らかの理由で破損していますが、プラグインは正常に動作します。

私が試した限りでは正常に動作しています。プラグインがインストールされていたことが原因だったのかもしれません。ここでは #plugin:broken-plugin として分類されています。最終的に解決できてよかったですね。

「いいね!」 2

ありがとうございます。プラグインをアンインストールします。次回、ネイティブのマージプロセスで状況が改善されなければ、いつでも再インストールできるでしょうから。

マージ対象の投稿の年齢やソースが要因だったのでしょうか?これらの投稿は、現在は存在しない Yahoo Groups フォーラムからインポートされたもので、インポート処理により、既に存在するアクティブなユーザーに対応するメールアドレスがない「ゾンビ」ユーザーが作成されていました。この古いユーザーアカウントはその一例だと思います。

「いいね!」 2