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

Opened 9 years ago

Last modified 9 years ago

#2769 new enhancement

memory_limit=8Mだとsimplepie.incを読み込んだ瞬間に落ちる

Reported by: imamura623 Owned by: nobody
Priority: major Milestone:
Component: その他 Version: 2.12.x & 2.14.x
Keywords: Cc:

Description

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

これはちょっとつらいなあ。。。

Fatal error: Allowed memory size of 8388608 bytes exhausted

っていうエラーメッセージが出る件です。

調べてみたところ、外部のRSSを解析するのに使っているSimplePieというライブラリを読み込んでいるところで落ちていた模様。

http://simplepie.org/
SimplePieの最新版では解決されているかも!と思って見に行ったらファイルサイズ増えてるんですけど……(行数は13,316行でした!!)

困ったなあ。。。

Change History (13)

comment:1 Changed 9 years ago by kiwa

Keywords: 再現待ち removed

再現待ちキーワード外します

comment:2 Changed 9 years ago by ebihara

Keywords: OpenPNE2.10.8 OpenPNE2.13.2 added
Milestone: OpenPNE2.12.2
Priority: minormajor

comment:3 Changed 9 years ago by ebihara

この問題の根本的な解決については、開発版で検討したいと思います。

安定版では、不用意に simplepie.inc を読み込んでしまっているところの削減という形で対処したいと思います(別チケットにおいて対応します)。

comment:4 Changed 9 years ago by ebihara

Keywords: OpenPNE2.10.8 OpenPNE2.13.2 removed
Milestone: OpenPNE2.12.2OpenPNE2.13.2

comment:5 Changed 9 years ago by ebihara

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

この問題の根本的な解決については、開発版で検討したいと思います。

version を適切なものにし忘れていました。

comment:6 Changed 9 years ago by kiwa

Milestone: OpenPNE2.13.2OpenPNE2.13.3

comment:7 Changed 9 years ago by ebihara

simplepie.inc は BSD License なのでソースコードに手を加えるという対処も可能ではあります。

ということで、 simplepie.inc を分割して利用するという対処方法もありえるかと思いますがどうでしょう。

comment:8 Changed 9 years ago by ebihara

Type: defectenhancement
Version: 2.13.x2.12.x & 2.13.x

comment:9 Changed 9 years ago by ebihara

Owner: changed from nobody to ebihara
Status: newassigned

comment:10 Changed 9 years ago by ebihara

Keywords: 確認中 added

r8436 で、 simplepie.inc 内に定義されている各クラスを、単一のファイル内で定義する形になるように分割をおこない、ファイル読み込み中に落ちにくいようにして対処しました。

  • simplepie.inc は simplepie.inc.org にリネームしました
  • SimplePie?.php や SimplePie/?*.php にてクラス定義がおこなわれています

分割については現在は手作業でやりましたが、今後もし再分割が必要になるのであればツールの作成を検討したいです。

comment:11 Changed 9 years ago by ebihara

Keywords: 確認中 removed
Milestone: OpenPNE2.13.3

おそらく冒頭の require_once によってこの現象が継続して発生してしまうようでした。

問題の解消にはいたらなかったようなので、一旦変更を取り消し、 require_once をおこなうタイミングを調節するなどして再度改善を試みたいと思います。

今回のリリース項目からは外します。

comment:12 Changed 9 years ago by ebihara

r8436 の変更を r8477 で取り消しました。

comment:13 Changed 9 years ago by ebihara

Owner: changed from ebihara to nobody
Status: assignednew
Note: See TracTickets for help on using tickets.