GuidoD
(Guido Drehsen)
1
どうやら、信頼レベル 0〜4 のグループ概要に表示されている数値が間違っています(実際より多くなっています)。
現在、システムユーザーと Discobot を含めてもユーザーは 439 人しかいません(過去にはもっと多かったのですが)。
しかし、グループ概要では以下のように表示されています:
グループ概要で信頼レベル 0 をクリックすると、正しい数値が表示されます:
- 信頼レベル 0:概要では 557、詳細では 439
- 信頼レベル 1:概要では 480、詳細では 412
- 信頼レベル 2:概要では 300、詳細では 298
- 信頼レベル 3:概要では 37、詳細では 35
- 信頼レベル 4:概要では 4、詳細では 2
また、「select count(*) from users」を実行しても 441 が返り、これは 439 + システム + Discobot と一致します。
グループ概要に表示されている他のグループの数値は正しいようです。
概要の数値を修正するにはどうすればよいでしょうか?
現在はバージョン 2.6.0.beta5( 698b7ace10 )を使用していますが、この問題は以前のバージョンにも既に存在していた可能性があります。
sam
(Sam Saffron)
2
数値は定期的に修正されますが、稀に同期が外れる場合があります。
最大 12 時間待てば自動的に修正されます。
お使いの環境で Sidekiq は正常に動作していますか?また、最近大量のユーザーを削除しましたか?
GuidoD
(Guido Drehsen)
3
12 時間経ってもまだ不正確なままです。信頼レベル 0 から 4 までのすべての値が、(理由は何であれ)2 だけ減少していました。他のすべてのグループカウンターは正しいようです。
いいえ、最後のユーザー削除はすでに 2 日前に行われています。
過去 14 日間で削除したユーザーは 7 人のみです。
過去 1 年半で 2000 人以上のユーザーを削除しました。autosupend プラグインを導入しており、365 日以上活動がないユーザーを自動停止(auto suspend)させています。これらの自動停止されたユーザーとそのデータは、EU-GDPR 準拠を維持するために少なくとも週に一度削除しています。
Sidekick は正常に動作しており、停止したジョブはありません。
記憶が正しければ、エラーが発生したジョブの数もここ数日変わっていません。
キュー 0f13eb003564dea87a7cc8f25560ba0e は何のためのものですか?
このキューは必要でしょうか、それとも削除すべきでしょうか?
問題の原因が見つかったと思います。group_users テーブルに、もはや存在しない user_id のエントリ(users テーブルにも存在しない)が残っています(合計 182 件のエントリで、117 件の user_id が users テーブルに対応するエントリを持っていません)。
どうやらデータベースに不整合が生じているようです。これがどのようにして起こったのかはわかりません。
では、今どう解決すればよいでしょうか?
users テーブルにエントリが存在しない group_users のエントリを、SQL ステートメントで手動削除するだけでよいのでしょうか?
sam
(Sam Saffron)
4
はい、ただしどのようにその状態になったのかは不明です。マイグレーションの結果か、そのような何かでしょうか?
削除は完全に安全です(ただし、すべてと同様に、事前にデータベースのバックアップを取得してください)。
./launcher enter app
rails c
DB.exec("delete from group_users where user_id not in (select id from users)")
ここで一貫した再現手順が見つかる場合、修正したいです。
GuidoD
(Guido Drehsen)
5
ご回答ありがとうございます。削除を行いましたので、次の概要の更新が完了次第、再度確認いたします。