Project

General

Profile

Bug(バグ) #3357

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

Added by Youichi Kimura about 6 years ago. Updated about 2 years ago.

Status:
New(新規)
Priority:
Normal(通常)
Assignee:
-
Target version:
Start date:
2013-06-06
Due date:
% Done:

0%

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

Description

現象

ブラウザ等でメンバー画像 (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 イベントが実行されない。

修正内容

修正内容を記入


Related issues

Duplicated by OpenPNE 3 - Bug(バグ) #3197: cacheディレクトリ内のツリー階層を変更すべきではない Invalid(無効) 2012-09-11

History

#1 Updated by kaoru n about 2 years ago

  • Target version changed from OpenPNE 3.9.0-old to OpenPNE 3.9.0

Also available in: Atom PDF