Project

General

Profile

Bug(バグ) #1510

opDoctrineQuery::calculateQueryCacheHash() が正常に動作しない

Added by Shogo Kawahara about 9 years ago. Updated almost 4 years ago.

Status:
Fixed(完了)
Priority:
High(高め)
Target version:
Start date:
2010-08-18
Due date:
% Done:

100%

3.6 で発生するか:
Yes
3.8 で発生するか:
Unknown (未調査)

Description

Overview

opDoctrineQuery::calculateQueryCacheHash() が正常に動作しない

Doctrine::getTable(*)->findOneByXAndY(...);
Doctrine::getTable(*)->findOneByYAndZ(...);

とすると2回目の実行で正常な値が返されない

実際の影響箇所は以下が確認されています。

  • コミュニティ副管理者依頼の承認画面

なお、APCの導入されていない環境では、本影響を受けない。

Environment

  • OpenPNE3.6beta2

Related issues

Related to OpenPNE 3 - Backport(バックポート) #1511: opDoctrineQuery::calculateQueryCacheHash() が正常に動作しない Fixed(完了) 2010-08-18

Associated revisions

Revision 90716878 (diff)
Added by Kousuke Ebihara almost 9 years ago

removed opDoctrineQuery::$findQueryCacheKeys support because it may select wrong query cache hash key (fixes #1510)

History

#2 Updated by Rimpei Ogawa almost 9 years ago

  • 3.6 で発生するか set to Yes

#3 Updated by Rimpei Ogawa almost 9 years ago

  • Priority changed from Urgent(急いで) to High(高め)

#4 Updated by Kousuke Ebihara almost 9 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Kousuke Ebihara

#5 Updated by Kousuke Ebihara almost 9 years ago

Doctrine_Table::find() のみ特別なクエリキャッシュキーを使うようなコードになっていますが、 Doctrine_Table::find() 側で特別なクエリを発行しない限り、期待通りの挙動を実現するのは不可能です。あらゆるアプローチを検討しましたが、これに関しては Doctrine_Query::calculateQueryCacheHash() よりも高速にキャッシュキーを正しく算出するのは非常に難しいと思います。

この問題の回避のためにパフォーマンス上悪影響を及ぼすかもしれないコードを無理に入れるのではなく、 Doctrine_Table::find() で特別なクエリキャッシュキーを使うのを諦めるのがこのチケットにおいてのもっとも現実的な解決策になると思います。

#6 Updated by Kousuke Ebihara almost 9 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

更新履歴 90716878b97e49424b0eb6a5fa69161771e06b2c で適用されました。

#7 Updated by Shogo Kawahara almost 9 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#8 Updated by Mutsumi Imamura almost 8 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

#9 Updated by kaoru n almost 4 years ago

  • 3.8 で発生するか set to Unknown (未調査)

Also available in: Atom PDF