プロジェクト

全般

プロフィール

Bug(バグ) #3357

未完了

./symfony cc を実行しても web/cache/ ディレクトリ以下に生成されたキャッシュが削除されない

Youichi Kimura さんが11年以上前に追加. ほぼ5年前に更新.

ステータス:
New(新規)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
開始日:
2013-06-06
期日:
進捗率:

0%

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

説明

現象

ブラウザ等でメンバー画像 (no_image ではない) などユーザーが投稿した画像のサムネイルを表示すると web/cache/ ディレクトリ以下にサムネイル画像のキャッシュが生成されるが、ここに生成された画像が ./symfony cc コマンドによって削除されない状態となっている。

原因

web/cache/ ディレクトリのキャッシュ削除は opApplicationConfiguration::clearWebCache() メソッドによって行われていた。このメソッドは task.cache.clear イベントの発生によって駆動するよう設計されているが、現状 task.cache.clear イベントは下記の理由により発生する事がないため、結果として一部のキャッシュが削除されない現象が発生している。

task.cache.clear イベントは ./symfony cc コマンド (sfCacheClearTask クラス) 実行時に アプリケーション毎に (pc_frontend, pc_backend, mobile_frontend など) 複数回呼び出されるイベントである。その仕組みは、symfony標準のディレクトリ階層の

  • cache/
    • pc_frontend/
      • prod/
      • dev/
    • pc_backend/
      • ...

に基づいて、 cache/ ディレクトリ直下 に存在するアプリケーション名 (この場合、pc_frontend と pc_backend が存在する) ごとに task.cache.clear イベントを発生させるものとなっている。
しかし現状のOpenPNEでは、 #957 の修正によって cache/ ディレクトリの階層構造がUNIXユーザー単位で分離されるようになり

  • cache/
    • www-data/
      • pc_frontend/
        • dev/
        • prod/
    • john/
      • pc_frontend/
        • dev/
        • prod/

となっているため、www-data や john といったアプリケーションは存在しないといった判断され task.cache.clear イベントが実行されない。

修正内容

修正内容を記入


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

次のチケットが重複 OpenPNE 3 - Bug(バグ) #3197: cacheディレクトリ内のツリー階層を変更すべきではないInvalid(無効)Youichi Kimura2012-09-11

操作

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