Bug(バグ) #2901
OpenPNE2系からコンバートした環境で管理画面から強制退会が出来ない現象が発生する場合がある
Start date:
2012-03-26
Due date:
% Done:
100%
3.6 で発生するか:
Unknown (未調査)
[QA]バグ通知済:
No
3.8 で発生するか:
Unknown (未調査)
Description
Overview (現象)¶
OpenPNE2系からコンバートした環境で管理画面から強制退会が出来ない現象が発生する場合がある。
ashiato テーブルの memmber_id_to, memmber_id_from が存在しないメンバーID の場合に退会処理に失敗する。
コンバーターはOpenPNEコア側の機能で判断に迷う所ですが、本件の原因はプラグインにあると判断しこちらにチケットを作成しました。
opAshiatoPluginプロジェクトにチケットを作成するのが不適切でしたら、お手数ですがOpenPNE3コアのプロジェクトにチケットの移動をお願いいたします。
再現バージョン¶
- OpenPNE3.6.2
- opAshiatoPlugin1.1.0
再現手順¶
- ashiato テーブルの memmber_id_to または memmber_id_from に存在しないメンバーIDの値があるメンバーデータを準備する
- 手順1で準備したメンバーを管理画面より強制退会する
- 「サーバーが混み合ってます・・・・」のエラーメッセージが表示される(devモードで確認すると外部キー制約違反のエラーが表示される)
Causes (原因)¶
バグが発生した原因を記入
Way to fix (修正内容)¶
修正内容を記入
History
#1
Updated by Mutsumi Imamura almost 9 years ago
- Description updated (diff)
#2
Updated by Mutsumi Imamura over 8 years ago
- Target version set to v1.1.1
#3
Updated by Mutsumi Imamura over 8 years ago
- Assignee set to Hidenori Goto
#4
Updated by Hidenori Goto over 8 years ago
原因箇所¶
OpenPNE2側で強制退会をしても、当該メンバーに関連するc_access_logレコードは無加工のまま残ります。これをOpenPNE3にコンバートした場合、通常使用時は影響ないが、管理画面から強制退会を行うとashiatoレコードの更新(退会するメンバーの箇所をnullにする on delete set nullが走る)を行うため、この時点で参照整合性エラーとなります。
修正方針¶
- 管理画面の強制退会処理時のみ、適切に扱えればよいと考えます。
- 今回の処理で参照整合性エラーとなるレコードは、削除されてよいレコードであると考えます。
- 強制退会画面のPOST処理時に、preイベントをフックして不正ashiatoレコードの除去処理を行うよう処理を追加します。(opAshiatoPlugin側)
#5
Updated by Hidenori Goto over 8 years ago
- Status changed from New(新規) to Pending Review(レビュー待ち)
- % Done changed from 0 to 50
#6
Updated by Yuya Watanabe over 8 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
下記コミットで master へマージしました.
https://github.com/tejimaya/opAshiatoPlugin/commit/181be00ff49854edd9733441c0bf67aec6625964
また,空白文字や改行記号が変だったため簡単に修正しました.
https://github.com/tejimaya/opAshiatoPlugin/commit/aee24c2cea1a6fceabd33cf4c74843233deb4580
#7
Updated by Yuma Sakata over 8 years ago
- Status changed from Pending Testing(テスト待ち) to Fixed(完了)
- % Done changed from 70 to 100
テストOKです。