ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#3239 closed defect (fixed)

アップロードファイルリスト表示時に必要以上にメモリを使用している

Reported by: imamura623 Owned by: kiwa
Priority: minor Milestone: OpenPNE2.12.8
Component: 指定しない Version: 2.12.x & 2.14.x
Keywords: OpenPNE2.13.6 Cc:

Description (last modified by kudo)

■現象

アップロードファイルリスト(admin_page_list_c_file)にて、アップロード可能なファイルサイズの制限を上げていた場合などに必要以上のメモリを使用してしまう可能性がある。

■原因

ファイルをリストアップする関数(db_file_c_file_list)でファイルサイズを調べるために取得するファイルのバイナリデータが、ファイルサイズ取得後も保持されるため。

■修正内容

ファイルサイズ取得後にバイナリデータを格納した変数を破棄し、メモリを開放するように変更。

■関連情報

元のDescription

http://sns.openpne.jp/?m=pc&a=page_fh_diary&target_c_diary_id=19977より転記

webapp/lib/db/file.phpのdb_file_c_file_list関数では各ファイルのファイルサイズを調べるためにそれぞれの行をセレクトしていますが
ファイルサイズを調べ終えた後もファイルのバイナリデータを保持しているため
アップロード可能なファイルサイズの制限を上げていた場合などには高確率でメモリを食いつぶします。

管理画面のファイル管理でエラーが出る場合は、ループ末尾で
unset($c_file_list[$i]['bin']);
などとしてメモリを開放する必要があります 

Change History (9)

comment:1 Changed 12 years ago by kiwa

Keywords: 再現待ち removed
Version: 2.10.x & 2.12.x & 2.13.x

動作上の問題ではなさそうなので、そのまま修正待ちにまわします。開発者の方は検討をお願いします。

comment:2 Changed 12 years ago by ebihara

Keywords: OpenPNE2.13.6 added
Milestone: OpenPNE2.12.8

修正方針が明確かつ対応も容易なので、対応します。

comment:3 Changed 12 years ago by ebihara

Version: 2.10.x & 2.12.x & 2.13.x2.12.x & 2.13.x

comment:4 Changed 12 years ago by kiwa

Owner: changed from nobody to kiwa
Status: newassigned

対応します。

comment:5 Changed 12 years ago by kiwa

Description: modified (diff)
Keywords: 確認中 added

以下のリビジョンで対応しました。ご確認ください。

指摘されたdb_file_c_file_list以外に複数のファイルのバイナリデータを保持するような流れを見つけられなかったので、db_file_c_file_listのみ修正しています。他の修正箇所が存在している場合は差し戻していただければ対応します。

comment:6 Changed 12 years ago by ogawa

Keywords: テスト待ち added; 確認中 removed

comment:7 Changed 12 years ago by kiwa

Keywords: テスト待ち removed
Resolution: fixed
Status: assignedclosed

確認しました。問題ありません。

comment:8 Changed 12 years ago by kiwa

Summary: db_file_c_file_listでメモリを開放していないアップロードファイルリスト表示時に必要以上にメモリを使用している

comment:9 Changed 12 years ago by kudo

Description: modified (diff)
Note: See TracTickets for help on using tickets.