プロジェクト

全般

プロフィール

Bug(バグ) #1510

完了

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

Shogo Kawahara さんが14年以上前に追加. 約9年前に更新.

ステータス:
Fixed(完了)
優先度:
High(高め)
担当者:
対象バージョン:
開始日:
2010-08-18
期日:
進捗率:

100%

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

説明

Overview

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

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

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

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

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

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

Environment

  • OpenPNE3.6beta2

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

関連している OpenPNE 3 - Backport(バックポート) #1511: opDoctrineQuery::calculateQueryCacheHash() が正常に動作しないFixed(完了)Kousuke Ebihara2010-08-18

操作

Rimpei Ogawa さんが14年以上前に更新

  • 3.6 で発生するかYes にセット

Rimpei Ogawa さんが14年以上前に更新

  • 優先度Urgent(急いで) から High(高め) に変更

Kousuke Ebihara さんが14年以上前に更新

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

Kousuke Ebihara さんが14年以上前に更新

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

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

Kousuke Ebihara さんが14年以上前に更新

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

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

Shogo Kawahara さんが14年以上前に更新

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

Mutsumi Imamura さんが約13年前に更新

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

kaoru n さんが約9年前に更新

  • 3.8 で発生するかUnknown (未調査) にセット

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