Ticket #4461 (closed defect: fixed)

Opened 6 years ago

Last modified 6 years ago

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

Reported by: kiwpon Assigned to: 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

02/08/11 22:20:44 changed by nagasawa

  • owner changed from nobody to nagasawa.

02/08/11 23:35:30 changed by nagasawa

  • keywords set to 確認中.

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

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

フレンド登録

修正前

  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. 「既にこのコミュニティに参加しています。」と表示される

02/08/11 23:38:07 changed by nagasawa

  • description changed.

02/14/11 20:04:53 changed by imamura623

  • keywords changed from 確認中 to 確認中(テスト済み).

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

02/16/11 16:02:31 changed by urabe

  • keywords changed from 確認中(テスト済み) to 差し戻し.

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

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

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

02/16/11 16:41:26 changed by nagasawa

  • keywords changed from 差し戻し to 確認中.
  • owner changed from nagasawa to urabe.

コミュニティ参加申請

修正前

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

修正後

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

02/16/11 16:51:56 changed by urabe

  • keywords changed from 確認中 to テスト待ち.
  • owner changed from urabe to imamura623.

確認しました

問題ありません

02/16/11 16:57:20 changed by nagasawa

  • description changed.

02/16/11 17:26:20 changed by imamura623

  • keywords deleted.
  • status changed from new to closed.
  • resolution set to fixed.

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