ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 7 years ago

Closed 7 years ago

#4461 closed defect (fixed)

Slave環境にてフレンドやコミュニティメンバーが重複登録されてしまう場合がある

Reported by: kiwpon Owned by: imamura623
Priority: minor Milestone: OpenPNE2.14.9
Component: 指定しない Version: 2.14.x
Keywords: Cc:

Description (last modified by nagasawa)

■概要

Slave環境にてフレンドやコミュニティメンバーが重複登録されてしまう場合がある。

■原因

メンバー登録判定時にmasterを読んでいないため、遅延が発生していた場合にデータが重複してしまう。

■修正内容

以下関数の db_get_one() の第3引数に "main" を指定し、常にmasterを参照するようにする。

  • db_commu_is_c_commu_member()
  • db_friend_is_friend()
  • db_commu_is_c_commu_join_wait()
  • db_commu_is_c_commu_member_confirm()

■関連情報

Change History (9)

comment:1 Changed 7 years ago by nagasawa

Owner: changed from nobody to nagasawa

comment:2 Changed 7 years ago by nagasawa

Keywords: 確認中 added

以下のリビジョンで修正しました。

以下の手順でテストを行っています。

フレンド登録

修正前

  1. フレンド申請を行う
  2. スレーブを停止する
  3. 申請したメンバーでログイン後、承認する
  4. 再度承認を行う
  5. スレーブを再開する
  6. 重複して登録される

修正後

  1. フレンド申請を行う
  2. スレーブを停止する
  3. 申請したメンバーでログイン後、承認する
  4. 再度承認を行う
  5. スレーブを再開する
  6. 重複して作成されていない

コミュニティ参加「誰でも参加可能」

修正前

  1. コミュニティを作成する
  2. スレーブを停止する
  3. コミュニティに参加する
  4. 再度コミュニティに参加する
  5. スレーブを再開する
  6. 重複して登録される

修正後

  1. コミュニティを作成する
  2. スレーブを停止する
  3. コミュニティに参加する
  4. 再度コミュニティに参加する
  5. 「既にこのコミュニティに参加しています。」と表示される

コミュニティ参加「管理者の承認が必要」

修正前

  1. 参加申請を行う
  2. スレーブを停止する
  3. 管理者でログインしなおし、承認する
  4. 再度承認を行う
  5. スレーブを再開する
  6. 重複して登録される

修正後

  1. 参加申請を行う
  2. スレーブを停止する
  3. 管理者でログインしなおし、承認する
  4. 再度承認を行う
  5. 「既にこのコミュニティに参加しています。」と表示される

comment:3 Changed 7 years ago by nagasawa

Description: modified (diff)

comment:4 Changed 7 years ago by imamura623

Keywords: 確認中(テスト済み) added; 確認中 removed

mysql multiを利用しレプリケーション環境を作成し、フレンド登録と解除、コミュニティメンバー登録と解除が正常に動作しているのを確認しました。 問題ありません。

comment:5 Changed 7 years ago by urabe

Keywords: 差し戻し added; 確認中(テスト済み) removed

フレンド申請は問題ありませんでした。

コミュニティ申請については、承認なしで参加できるコミュニティについては問題はありませんが、 承認が必要なコミュニティでレプリケーション遅延が発生した場合、不要な承認確認データが残りますので、承認待ちであるか判別するテーブルのデータもmasterを参照する必要があるかと思います。

承認申請画面で「削除」をクリックすることで不要なデータについては削除が可能です。

comment:6 Changed 7 years ago by nagasawa

Keywords: 確認中 added; 差し戻し removed
Owner: changed from nagasawa to urabe

コミュニティ参加申請

修正前

  1. スレーブを停止する
  2. 参加申請を行う
  3. 再度承認を行う
  4. スレーブを再開する
  5. 管理者でログインしなおし、承認する
  6. 参加申請が重複している

修正後

  1. スレーブを停止する
  2. 参加申請を行う
  3. 再度承認を行う
  4. 「現在、管理者による承認待ちです。」と表示される

comment:7 Changed 7 years ago by urabe

Keywords: テスト待ち added; 確認中 removed
Owner: changed from urabe to imamura623

確認しました

問題ありません

comment:8 Changed 7 years ago by nagasawa

Description: modified (diff)

comment:9 Changed 7 years ago by imamura623

Keywords: テスト待ち removed
Resolution: fixed
Status: newclosed

mysql multiを利用し作成したレプリケーション環境にて承認制のコミュニティでの動作も確認しました。 問題ありません。

Note: See TracTickets for help on using tickets.