スタッフタグが重複タグインデックスを引き起こす

ActiveRecord::RecordNotUnique on idx_tag_users_ix1: How to fix? の議論を続けます。

エラーが再現しました。このバグを突き止める手がかりを掴んだと思います。

再現手順

  1. タグ #foo を作成します

  2. タグ #foo の使用をスタッフに制限します

  3. グループ Bar を作成します

  4. グループ Bar にタグ #foo のウォッチ通知を割り当てます

  5. 特権のないユーザーがグループ Bar に参加します

  6. そのユーザーの #foo に対する個人通知を「通常」に変更します

  7. 特権のないユーザーはページを読み込めなくなります

これは2人の異なるユーザーに2回発生したため、おそらくこれが起きていることだと疑っています。エラーは次のようになります: https://oxygen.offdem.net/logs/show/f70207d3affa8967932b9122d2be212b

おそらく、タイトルは少し限定的すぎます。これは、タグのグループへの制限と個人通知に関する問題だと思います。

すべての新規ユーザーに重複エントリがあり、コンソールから削除する必要があります。

 r = TagUser.connection.execute("SELECT user_id, tag_id, count(*) FROM tag_users GROUP BY tag_id, user_id HAVING count(*) > 1")
r.values.each { |uid,tag,_| TagUser.where(user_id: uid, tag_id: tag).last.destroy }

再現がうまくいっているか分かりません…

  • タググループを作成する
  • タググループに「#staff-tag」タグを作成する
  • 「タグは全員に表示されますが、以下のグループのみが使用できます」を「staff」に設定する

* グループを作成する * 「/manage/tags」で「#staff-tag」を「Watching」に追加する * テストユーザー(TL2)をグループに追加する * 設定/トラッキングでテストユーザーの「#staff-tag」が「Watching」になっていることを確認する
* 「/tags/staff-tag」に移動し、ベルアイコンを「Normal」に変更する

すべてうまくいっているようです。

この手順についてはよくわかりません。グループの通知で、グループの監視中の通知にタグを追加しました。

こちらのページのことです。

リンクを短縮しすぎたかもしれません - /g/GROUPNAME/manage/tags

それとも別の場所から試す必要がありますか?

よくわかりません。OFFDEMの前にあまり時間をかけられません。今のところ、新しいユーザーが来るたびにSQLリクエストを実行して問題を修正しています。何か見落としたことがあるかもしれません。例えば…すべてのカテゴリがデフォルトでミュートされていることが、通知に影響している可能性があります。

それが関連しているかもしれません。デフォルトで全てのカテゴリをミュートする設定を使用していますか?

「いいね!」 1

はい、この設定を使用しています。