プロジェクト

全般

プロフィール

Backport(バックポート) #3467

完了

#927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避

Mutsumi Imamura さんが約11年前に追加. 約11年前に更新.

ステータス:
Invalid(無効)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
開始日:
2013-10-09
期日:
進捗率:

0%

予定工数:

説明

Overview (現象)

Doctrine_Record::free() メソッドには https://gist.github.com/upsilon/6896385 のような Doctrine のバグと思わしき現象が存在している。
#927 でのメモリリーク改善のために行った d6956cde880be65aefc802e01b070bb9d054145f の修正は CommunityTableTest.php などのテストコードでこの現象を引き起こしており、例えば下記のようなコードを実行するとエラーが発生する。

$communityMember1 = Doctrine_Core::getTable('CommunityMember')
  ->findOneByCommunityIdAndMemberId(1, 1);

Doctrine_Core::getTable('CommunityMember')->isMember(1, 1);

print $communityMember1->community_id; // エラー

Way to fix (修正内容)

この問題を根本的に解決するためには Doctrine 自体に手を加える必要があるため、ここでは不具合の回避のための修正を行う。具体的には #927 で行ったメモリリーク改善の効果を落とさないように CommunityMember オブジェクトに対する free() メソッドの呼び出しを最小限に抑えるための修正を施す。


関連するチケット 1 (0件未完了1件完了)

関連している OpenPNE 3 - Bug(バグ) #3445: #927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避Won't fix(対応せず)Youichi Kimura2013-10-09

操作

Akihiro KOBAYASHI さんが約11年前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Akihiro KOBAYASHI にセット

Akihiro KOBAYASHI さんが約11年前に更新

  • ステータスAccepted(着手) から New(新規) に変更
  • 担当者 を削除 (Akihiro KOBAYASHI)

Youichi Kimura さんが約11年前に更新

  • ステータスNew(新規) から Invalid(無効) に変更

stable-3.8.x では発生しないバグのためバックポート不要です

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