プロジェクト

全般

プロフィール

Bug(バグ) #2901

OpenPNE2系からコンバートした環境で管理画面から強制退会が出来ない現象が発生する場合がある

Mutsumi Imamura約12年前に追加. ほぼ12年前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2012-03-26
期日:
進捗率:

100%

3.6 で発生するか:
Unknown (未調査)
[QA]バグ通知済:
いいえ
3.8 で発生するか:
Unknown (未調査)

説明

Overview (現象)

OpenPNE2系からコンバートした環境で管理画面から強制退会が出来ない現象が発生する場合がある。
ashiato テーブルの memmber_id_to, memmber_id_from が存在しないメンバーID の場合に退会処理に失敗する。

コンバーターはOpenPNEコア側の機能で判断に迷う所ですが、本件の原因はプラグインにあると判断しこちらにチケットを作成しました。
opAshiatoPluginプロジェクトにチケットを作成するのが不適切でしたら、お手数ですがOpenPNE3コアのプロジェクトにチケットの移動をお願いいたします。

再現バージョン

  • OpenPNE3.6.2
  • opAshiatoPlugin1.1.0

再現手順

  1. ashiato テーブルの memmber_id_to または memmber_id_from に存在しないメンバーIDの値があるメンバーデータを準備する
  2. 手順1で準備したメンバーを管理画面より強制退会する
  3. 「サーバーが混み合ってます・・・・」のエラーメッセージが表示される(devモードで確認すると外部キー制約違反のエラーが表示される)

Causes (原因)

バグが発生した原因を記入

Way to fix (修正内容)

修正内容を記入

履歴

#1 Mutsumi Imamura約12年前に更新

  • 説明 を更新 (diff)

#2 Mutsumi Imamuraほぼ12年前に更新

  • 対象バージョンv1.1.1 にセット

#3 Mutsumi Imamuraほぼ12年前に更新

  • 担当者Hidenori Goto にセット

#4 Hidenori Gotoほぼ12年前に更新

原因箇所

OpenPNE2側で強制退会をしても、当該メンバーに関連するc_access_logレコードは無加工のまま残ります。これをOpenPNE3にコンバートした場合、通常使用時は影響ないが、管理画面から強制退会を行うとashiatoレコードの更新(退会するメンバーの箇所をnullにする on delete set nullが走る)を行うため、この時点で参照整合性エラーとなります。

修正方針

  • 管理画面の強制退会処理時のみ、適切に扱えればよいと考えます。
  • 今回の処理で参照整合性エラーとなるレコードは、削除されてよいレコードであると考えます。
  • 強制退会画面のPOST処理時に、preイベントをフックして不正ashiatoレコードの除去処理を行うよう処理を追加します。(opAshiatoPlugin側)

#5 Hidenori Gotoほぼ12年前に更新

  • ステータスNew(新規) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

#6 Yuya Watanabeほぼ12年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

下記コミットで master へマージしました.

https://github.com/tejimaya/opAshiatoPlugin/commit/181be00ff49854edd9733441c0bf67aec6625964

また,空白文字や改行記号が変だったため簡単に修正しました.

https://github.com/tejimaya/opAshiatoPlugin/commit/aee24c2cea1a6fceabd33cf4c74843233deb4580

#7 Yuma Sakataほぼ12年前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです。

他の形式にエクスポート: Atom PDF