Project

General

Profile

Bug(バグ) #950

if use a gadget was error when a state of the limit functions of mail template is enabled. (メールテンプレートの機能制限が有効の状態でガジェットを使用するとエラーになる)

Added by Mutsumi Imamura over 9 years ago. Updated almost 4 years ago.

Status:
Fixed(完了)
Priority:
High(高め)
Target version:
Start date:
2010-04-09
Due date:
% Done:

100%

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

Description

現象

管理画面のデイリーニュースガジェット設定で、フリーエリアガジェットに入力があるとデイリーメールタスクでFatalErrorが発生する

再現環境

  • OpenPNE3.4.1
  • 手嶋屋開発環境

原因

include_component()で第三引数に指定するarray('gadget')をテンプレート側で正しく渡せていない。
OpenPNE.yml で is_restrict_mail_template: true として場合に特定のオブジェクト以外は配列に変換されるが、
gadget クラスがその対象に含まれていない事が原因で、配列になってしまっているため、問題が起こっている。

修正内容

lib/view/twig/opTemplateRendererTwig.php 内でパラメータの機能制限を行っているので、
パラメータ内に Gadget オブジェクトが存在する場合、配列や除外対象にしないように修正する。

エラー内容

PHP Fatal error:  Call to undefined method sfOutputEscaperArrayDecorator::getConfig() in /home/hoge/sns/341.hoge.hoge.hoge.jp/apps/pc_frontend/modules/default/templates/_freeAreaMail.php on line 1
PHP Stack trace:
PHP   1. {main}() /home/hoge/sns/341.hoge.hoge.hoge.jp/symfony:0
PHP   2. include() /home/hoge/sns/341.hoge.hoge.hoge.jp/symfony:14
PHP   3. sfSymfonyCommandApplication->run() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/command/cli.php:20
PHP   4. sfTask->runFromCLI() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/command/sfSymfonyCommandApplication.class.php:76
PHP   5. sfBaseTask->doRun() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/task/sfTask.class.php:97
PHP   6. openpneSendDailyNewsTask->execute() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/task/sfBaseTask.class.php:68
PHP   7. sfOpenPNEMailSend::sendTemplateMail() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/task/openpneSendDailyNewsTask.class.php:79
PHP   8. sfOpenPNEMailSend::getMailTemplate() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/util/sfOpenPNEMailSend.class.php:128
PHP   9. sfPartialView->render() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/util/sfOpenPNEMailSend.class.php:94
PHP  10. sfTemplatingComponentPartialView->renderFile() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/view/sfPartialView.class.php:110
PHP  11. sfTemplateEngine->render() /home/hoge/sns/341.hoge.hoge.hoge.jp/plugins/sfSymfonyTemplatingViewPlugin/lib/view/sfTemplatingComponentPartialView.class.php:67
PHP  12. opTemplateRendererTwig->evaluate() /home/hoge/sns/341.hoge.hoge.hoge.jp/plugins/sfSymfonyTemplatingViewPlugin/lib/vendor/SymfonyTemplating/sfTemplateEngine.php:105
PHP  13. sfTemplateRendererTwig->evaluate() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/view/twig/opTemplateRendererTwig.php:26
PHP  14. Twig_Template->render() /home/hoge/sns/341.hoge.hoge.hoge.jp/plugins/sfSymfonyTemplatingViewPlugin/lib/renderer/sfTemplateRendererTwig.php:37
PHP  15. __TwigTemplate_cc2046e81adfc7a9d32f54ca8fe289cd->display() /home/hoge/sns/341.hoge.hoge.hoge.jp/plugins/sfSymfonyTemplatingViewPlugin/lib/vendor/Twig/Template.php:26
PHP  16. include_component() /home/hoge/sns/341.hoge.hoge.hoge.jp/plugins/sfSymfonyTemplatingViewPlugin/lib/vendor/Twig/Environment.php(184) : eval()'d code:76
PHP  17. get_component() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/helper/PartialHelper.php:115
PHP  18. sfPartialView->render() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/helper/PartialHelper.php:155
PHP  19. sfPHPView->renderFile() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/view/sfPartialView.class.php:110
PHP  20. require() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/view/sfPHPView.class.php:75
----------------------------------------------------------

MySNS

http://example.com/

本日の最新情報  [2010. 04. 09/Fri]

  [Apr. 09 2010/Fri]

----------------------------------------------------------

Hello .nanana

Fatal error: Call to undefined method sfOutputEscaperArrayDecorator::getConfig() in /home/hoge/sns/341.hoge.hoge.hoge.jp/apps/pc_frontend/modules/default/templates/_freeAreaMail.php on line 1

Call Stack:
    0.0004      49220   1. {main}() /home/hoge/sns/341.hoge.hoge.hoge.jp/symfony:0
    0.0066     359196   2. include('/home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/command/cli.php') /home/hoge/sns/341.hoge.hoge.hoge.jp/symfony:14
    0.3605    8125260   3. sfSymfonyCommandApplication->run() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/command/cli.php:20
    0.3694    8151220   4. sfTask->runFromCLI() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/command/sfSymfonyCommandApplication.class.php:76
    0.3696    8151220   5. sfBaseTask->doRun() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/task/sfTask.class.php:97
    1.5532    8528552   6. openpneSendDailyNewsTask->execute() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/task/sfBaseTask.class.php:68
    4.4912   27564544   7. sfOpenPNEMailSend::sendTemplateMail() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/task/openpneSendDailyNewsTask.class.php:79
    4.5286   27881444   8. sfOpenPNEMailSend::getMailTemplate() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/util/sfOpenPNEMailSend.class.php:128
    4.5563   28667996   9. sfPartialView->render() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/util/sfOpenPNEMailSend.class.php:94
    4.5564   28668036  10. sfTemplatingComponentPartialView->renderFile() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/view/sfPartialView.class.php:110
    4.5830   29505072  11. sfTemplateEngine->render() /home/hoge/sns/341.hoge.hoge.hoge.jp/plugins/sfSymfonyTemplatingViewPlugin/lib/view/sfTemplatingComponentPartialView.class.php:67
    4.6435   29635224  12. opTemplateRendererTwig->evaluate() /home/hoge/sns/341.hoge.hoge.hoge.jp/plugins/sfSymfonyTemplatingViewPlugin/lib/vendor/SymfonyTemplating/sfTemplateEngine.php:105
    6.6524   32122572  13. sfTemplateRendererTwig->evaluate() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/view/twig/opTemplateRendererTwig.php:26
    8.0212   33277156  14. Twig_Template->render() /home/hoge/sns/341.hoge.hoge.hoge.jp/plugins/sfSymfonyTemplatingViewPlugin/lib/renderer/sfTemplateRendererTwig.php:37
    8.0212   33318144  15. __TwigTemplate_cc2046e81adfc7a9d32f54ca8fe289cd->display() /home/hoge/sns/341.hoge.hoge.hoge.jp/plugins/sfSymfonyTemplatingViewPlugin/lib/vendor/Twig/Template.php:26
    8.0225   33319752  16. include_component() /home/hoge/sns/341.hoge.hoge.hoge.jp/plugins/sfSymfonyTemplatingViewPlugin/lib/vendor/Twig/Environment.php(184) : eval()'d code:76
    8.0225   33319752  17. get_component() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/helper/PartialHelper.php:115
    8.0380   33337284  18. sfPartialView->render() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/helper/PartialHelper.php:155
    8.0381   33337284  19. sfPHPView->renderFile() /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/view/sfPartialView.class.php:110
    8.0991   33381976  20. require('/home/hoge/sns/341.hoge.hoge.hoge.jp/apps/pc_frontend/modules/default/templates/_freeAreaMail.php') /home/hoge/sns/341.hoge.hoge.hoge.jp/lib/vendor/symfony/lib/view/sfPHPView.class.php:75


Related issues

Related to OpenPNE 3 - Backport(バックポート) #1616: 管理画面のデイリーニュースガジェット設定でフリーエリアガジェットに入力があるとデイリーメールタスクでFatalErrorが発生する Invalid(無効) 2010-04-09
Related to OpenPNE 3 - Backport(バックポート) #1642: if use a gadget was error when a state of the limit functions of mail template is enabled. (メールテンプレートの機能制限が有効の状態でガジェットを使用するとエラーになる) Fixed(完了) 2010-04-09
Related to OpenPNE 3 - Backport(バックポート) #1646: if use a gadget was error when a state of the limit functions of mail template is enabled. (メールテンプレートの機能制限が有効の状態でガジェットを使用するとエラーになる) Fixed(完了) 2010-04-09
Duplicated by OpenPNE 3 - Bug(バグ) #909: デイリーニュースにフリーエリアを挿入すると Fatal error Invalid(無効) 2010-03-27

Associated revisions

Revision a59c3300 (diff)
Added by Masato Nagasawa almost 9 years ago

fixed allowed gadget class in the twig template. (fixes #950)

History

#1 Updated by Mutsumi Imamura over 9 years ago

エラーメッセージが切れていたので追記しました。

#2 Updated by Masato Nagasawa over 9 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Masato Nagasawa

#3 Updated by Rimpei Ogawa almost 9 years ago

  • 3.6 で発生するか set to Yes

#4 Updated by Kousuke Ebihara almost 9 years ago

  • Target version set to OpenPNE 3.7.0

#5 Updated by Masato Nagasawa almost 9 years ago

  • Subject changed from 管理画面のデイリーニュースガジェット設定でフリーエリアガジェットに入力があるとデイリーメールタスクでFatalErrorが発生する to メールテンプレートでガジェットを使用するとエラーになる

include_component()で第三引数に指定するarray('gadget')をテンプレート側で正しく渡せていない事が原因です。

#6 Updated by Masato Nagasawa almost 9 years ago

  • Subject changed from メールテンプレートでガジェットを使用するとエラーになる to メールテンプレートの機能制限が有効の状態でガジェットを使用するとエラーになる

#7 Updated by Masato Nagasawa almost 9 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

更新履歴 a59c330005f2166f728cf9a23036114d9f9d047a で適用されました。

すでにDB上にテンプレートが存在している場合、
今回のテンプレートへの変更が反映されていない状態になります。
ですが、テンプレートの修正は gadget 要素のみを第三引数に渡す対応であり、
以前の状態のままでも item.gadget 要素は存在しているため動作に問題はありません。(不要な要素を第三引数に渡さない対応)

#8 Updated by Masato Nagasawa almost 9 years ago

  • Subject changed from メールテンプレートの機能制限が有効の状態でガジェットを使用するとエラーになる to if use a gadget was error when a state of the limit functions of mail template is enabled. (メールテンプレートの機能制限が有効の状態でガジェットを使用するとエラーになる)

#9 Updated by Shogo Kawahara almost 9 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#10 Updated by Yuma Sakata almost 8 years ago

  • Status changed from Pending Testing(テスト待ち) to Pending Fixing(修正待ち)

テスト実施したところ #1594 と同じ問題が確認できました。
本チケットとは違う原因かもしれませんので、その場合は #1594 で対応よろしくお願いします。

また以下の問題もあり、本チケットで修正するべき問題か判断できかねますが差し戻します。

メールテンプレートの機能制限が有効の状態でガジェットを使用した時の動作確認(SNSメンバー500人以上)

  • 試験手順

0. SNSメンバーを500人以上の状態にする
1. 管理画面のデイリーニュースガジェット設定を表示する
2. フリーエリアガジェットの任意の箇所に「tetete」と追記する
3. コンソールから symfony openpne:send-daily-news を実行する

  • 試験結果
    以下エラーメッセージが表示されて、デイリーニュースが送信できない
Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 64 bytes) in /home/hoge/sns/hoge.jp/lib/view/twig/opTemplateRendererTwig.php on line 99
  • 修正方針
    こちらの問題につきましても本チケットに挙げられている問題と別の場合 #1594 で対応が良いと思いますがいかがでしょうか。
    #950 を fix にするには #1594 の問題も修正する必要があると思います。

#11 Updated by Yuya Watanabe over 7 years ago

  • Status changed from Pending Fixing(修正待ち) to Accepted(着手)
  • 3.6 で発生するか changed from Yes to Unknown (未調査)
  • 3.4 で発生するか set to Unknown (未調査)

#12 Updated by Yuya Watanabe over 7 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

#13 Updated by Yuya Watanabe over 7 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

再レビューしました.

note-10 の問題は本チケットとは別の問題であるため,別チケットでの対応がいいと思います.
しかし, #1594 によって別プロセスで実行するという回避策をとったため,メモリが足りないという状態も回避できている可能性があります. note-10 については再調査が必要であると思います.

#14 Updated by Shouta Kashiwagi over 7 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

テストOKです。

#15 Updated by kaoru n almost 4 years ago

  • 3.8 で発生するか set to Unknown (未調査)

Also available in: Atom PDF