Ticket #2480 (new バグ指摘)

Opened 7 years ago

Last modified 6 years ago

デストラク(function destroy)の削除漏れがある

Reported by: kimoto Owned by: somebody
Priority: Milestone: EC-CUBE2.13.x
Component: その他 Version: 2.13.0
Keywords: Cc:
修正済み: no

Description

2.13.0で削除されたfunction destroyが LC_Page_Admin_OwnersStore_PluginHookPointList_Ex.phpとdata/class/pages/admin/ownersstore/LC_Page_Admin_OwnersStore_PluginHookPointList.phpに残っている

また、別件ではあるがプラグイン内でfunction destroyを読んでいるとPHP5.1.6でのみ下記エラーでシステムエラーになる

Fatal error: Call to undefined method LC_Page_Admin_Ex::destroy() on [/var/www/html/eccube-2.13.1/data/downloads/plugin/hogehoge/LC_Page_Plugin_hogehoge_Config.php(103)

Change History

comment:1 Changed 7 years ago by kimoto

  • Owner changed from somebody to kimoto

comment:2 Changed 7 years ago by kimoto

php5.1.6が落ちて、それ以外が落ちない原因は SC_Helper_HandleError.phpの_fatal_error_handlerとhandle_errorの実装の違いらしい

register_shutdown_function内でfatal errorが出た場合に補足できずにスルーしているような挙動に見える

comment:3 Changed 7 years ago by kimoto

  • Status changed from new to assigned

register_shutdown_function内でfatal errorが出ると、一旦それを無視して最後まで処理を続行 ↓ handle_errorでエラーを取得 ↓ 一番最後に出ているエラーがfatal error以外の場合がある(プラグインだとSC_View.phpのエラーなどを拾ってます) ↓ handle_errorはfatal errorで終わった場合を拾うようになっているので処理が続行 ↓ エラー画面が表示されず、エラーログも残さず動作する

こんな動きになっているようです。 結論的には

EC-CUBE内でregister_shutdown_functionを使わないようにする もしくは register_shutdown_function(array(CLASS, 'handle_error'));をやめる もしくは 上の挙動をしてもエラーを何とか拾う

なのかなと・・

comment:4 Changed 6 years ago by h_yoshimoto

  • Milestone changed from EC-CUBE2.13.2 to EC-CUBE2.13.3

comment:5 Changed 6 years ago by kim

  • Owner changed from kimoto to somebody
  • Status changed from assigned to new
  • Milestone changed from EC-CUBE2.13.3 to EC-CUBE2.13.4

ながらく動きがないため、somebodyに変更の上、次期バージョンとさせていただきます。

Note: See TracTickets for help on using tickets.