Backport(バックポート) #3446
#927 の修正によって無関係なCommunityMemberインスタンスが解放される問題の回避
Start date:
2013-10-09
Due date:
% Done:
0%
Description
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() メソッドの呼び出しを最小限に抑えるための修正を施す。
Related issues
History
#1
Updated by Mutsumi Imamura about 10 years ago
- Assignee set to Youichi Kimura
#2
Updated by Youichi Kimura about 10 years ago
- Status changed from New(新規) to Invalid(無効)
stable-3.6.x では発生しないバグのためバックポート不要です