nystudio107 / craft-webperf

Webperf helps you build & maintain high quality websites through Real User Measurement of your website's performance
https://nystudio107.com/plugins/webperf
Other
25 stars 2 forks source link

Causing internal server error in admin? #8

Closed chromadesign closed 5 years ago

chromadesign commented 5 years ago

Hi,

I installed the trial of webperf. It worked fine at first but suddenly I got locked out of the admin panel with an internal server error. The log file printed below error messsage which lets me assume it has something to do with the plugin. If yes, how can I fix this?

Edit: The frontend loads fine, by the way.

`2019-02-25 10:45:27 [-][1][94317439431c01a6555872869f106ec1][error][yii\base\ErrorException:2] yii\base\ErrorException: Division by zero in /home///vendor/nystudio107/craft-webperf/src/recommendations/MemoryLimit.php:40 Stack trace:

0 /home///vendor/craftcms/cms/src/web/ErrorHandler.php(76): yii\base\ErrorHandler->handleError(2, 'Division by zer...', '/home/**/...', 40)

1 /home///vendor/nystudio107/craft-webperf/src/recommendations/MemoryLimit.php(40): craft\web\ErrorHandler->handleError(2, 'Division by zer...', '/home/**/...', 40, Array)

2 /home///vendor/nystudio107/craft-webperf/src/base/Recommendation.php(35): nystudio107\webperf\recommendations\MemoryLimit->evaluate()

3 /home///vendor/yiisoft/yii2/base/BaseObject.php(109): nystudio107\webperf\base\Recommendation->init()

4 /home///vendor/nystudio107/craft-webperf/src/base/CleanModel.php(50): yii\base\BaseObject->__construct(Array)

5 /home///vendor/nystudio107/craft-webperf/src/services/Recommendations.php(66): nystudio107\webperf\base\CleanModel->__construct(Array)

6 /home///vendor/nystudio107/craft-webperf/src/Webperf.php(766): nystudio107\webperf\services\Recommendations->list(Object(nystudio107\webperf\models\RecommendationDataSample))

7 [internal function]: nystudio107\webperf\Webperf->nystudio107\webperf{closure}(Object(yii\caching\FileCache))

8 /home///vendor/yiisoft/yii2/caching/Cache.php(595): call_user_func(Object(Closure), Object(yii\caching\FileCache))

9 /home///vendor/nystudio107/craft-webperf/src/Webperf.php(770): yii\caching\Cache->getOrSet('webperf-recomme...', Object(Closure), 60)

10 /home///vendor/nystudio107/craft-webperf/src/Webperf.php(169): nystudio107\webperf\Webperf->getRecommendationsCount()

11 /home///vendor/craftcms/cms/src/web/twig/variables/Cp.php(133): nystudio107\webperf\Webperf->getCpNavItem()

12 /home///vendor/twig/twig/lib/Twig/Extension/Core.php(1626): craft\web\twig\variables\Cp->nav()

13 /home///vendor/craftcms/cms/src/helpers/Template.php(73): twig_get_attribute(Object(craft\web\twig\Environment), Object(Twig_Source), Object(craft\web\twig\variables\Cp), 'nav', Array, 'method', false, false)

14 /home///storage/runtime/compiled_templates/ef/ef66fbea8732fe2418c7ebc40f7b49d2fca4568f4f28e0cc6d9f30afe396805f.php(195): craft\helpers\Template::attribute(Object(craft\web\twig\Environment), Object(Twig_Source), Object(craft\web\twig\variables\Cp), 'nav', Array, 'method')

15 /home///vendor/twig/twig/lib/Twig/Template.php(189): __TwigTemplate_7e89eaa15bd1c373873f900b73defa023cb12b48e008619a6e4d29c91f829467->block_body(Array, Array)

16 /home///storage/runtime/compiled_templates/db/dbdc8cb81e5773efd5de27bd3da2ab4a672814446bdd58173800b5869c01ade5.php(60): Twig_Template->displayBlock('body', Array, Array)

17 /home///vendor/twig/twig/lib/Twig/Template.php(386): __TwigTemplate_448399f8e06cec2a6aa98f702d938b0edd5bb82b0f1c3b95cea3104a5f4ce2b9->doDisplay(Array, Array)

18 /home///vendor/craftcms/cms/src/web/twig/Template.php(49): Twig_Template->displayWithErrorHandling(Array, Array)

19 /home///vendor/twig/twig/lib/Twig/Template.php(363): craft\web\twig\Template->displayWithErrorHandling(Array, Array)

20 /home///vendor/craftcms/cms/src/web/twig/Template.php(31): Twig_Template->display(Array, Array)

21 /home///storage/runtime/compiled_templates/a1/a1fc86af3eb0323b3b1663f2f1deeef83b4c010d22a3f704754790838185954b.php(40): craft\web\twig\Template->display(Array, Array)

22 /home///vendor/twig/twig/lib/Twig/Template.php(386): __TwigTemplate_10dda3cac79e544fbb2065355947b20cf14061918a405c062b3182d37b143e42->doDisplay(Array, Array)

23 /home///vendor/craftcms/cms/src/web/twig/Template.php(49): Twig_Template->displayWithErrorHandling(Array, Array)

24 /home///vendor/twig/twig/lib/Twig/Template.php(363): craft\web\twig\Template->displayWithErrorHandling(Array, Array)

25 /home///vendor/craftcms/cms/src/web/twig/Template.php(31): Twig_Template->display(Array, Array)

26 /home///storage/runtime/compiled_templates/ef/ef66fbea8732fe2418c7ebc40f7b49d2fca4568f4f28e0cc6d9f30afe396805f.php(95): craft\web\twig\Template->display(Array, Array)

27 /home///vendor/twig/twig/lib/Twig/Template.php(386): __TwigTemplate_7e89eaa15bd1c373873f900b73defa023cb12b48e008619a6e4d29c91f829467->doDisplay(Array, Array)

28 /home///vendor/craftcms/cms/src/web/twig/Template.php(49): Twig_Template->displayWithErrorHandling(Array, Array)

29 /home///vendor/twig/twig/lib/Twig/Template.php(363): craft\web\twig\Template->displayWithErrorHandling(Array, Array)

30 /home///vendor/craftcms/cms/src/web/twig/Template.php(31): Twig_Template->display(Array, Array)

31 /home///storage/runtime/compiled_templates/55/55bd1c30f77b4e9259eccffd1f0bde10f6763b944d3b2a83f913bf159a14a268.php(32): craft\web\twig\Template->display(Array, Array)

32 /home///vendor/twig/twig/lib/Twig/Template.php(386): __TwigTemplate_50b86bde48fc2e178d7f518c2826e24a73643eede9d8d41baf8135423f322c9d->doDisplay(Array, Array)

33 /home///vendor/craftcms/cms/src/web/twig/Template.php(49): Twig_Template->displayWithErrorHandling(Array, Array)

34 /home///vendor/twig/twig/lib/Twig/Template.php(363): craft\web\twig\Template->displayWithErrorHandling(Array, Array)

35 /home///vendor/craftcms/cms/src/web/twig/Template.php(31): Twig_Template->display(Array, Array)

36 /home///vendor/twig/twig/lib/Twig/Template.php(371): craft\web\twig\Template->display(Array)

37 /home///vendor/twig/twig/lib/Twig/Environment.php(289): Twig_Template->render(Array)

38 /home///vendor/craftcms/cms/src/web/View.php(337): Twig_Environment->render('dashboard/_inde...', Array)

39 /home///vendor/craftcms/cms/src/web/View.php(384): craft\web\View->renderTemplate('dashboard/_inde...', Array)

40 /home///vendor/craftcms/cms/src/web/Controller.php(161): craft\web\View->renderPageTemplate('dashboard/_inde...', Array)

41 /home///vendor/craftcms/cms/src/controllers/DashboardController.php(136): craft\web\Controller->renderTemplate('dashboard/_inde...', Array)

42 [internal function]: craft\controllers\DashboardController->actionIndex()

43 /home///vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)

44 /home///vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)

45 /home///vendor/craftcms/cms/src/web/Controller.php(109): yii\base\Controller->runAction('index', Array)

46 /home///vendor/yiisoft/yii2/base/Module.php(528): craft\web\Controller->runAction('index', Array)

47 /home///vendor/craftcms/cms/src/web/Application.php(297): yii\base\Module->runAction('dashboard/index', Array)

48 /home///vendor/yiisoft/yii2/web/Application.php(103): craft\web\Application->runAction('dashboard/index', Array)

49 /home///vendor/craftcms/cms/src/web/Application.php(286): yii\web\Application->handleRequest(Object(craft\web\Request))

50 /home///vendor/yiisoft/yii2/base/Application.php(386): craft\web\Application->handleRequest(Object(craft\web\Request))

51 /home///web/index.php(21): yii\base\Application->run()

52 {main}`

chromadesign commented 5 years ago

Quick update: Later on the logs showed this error message:

2019-02-25 15:24:14 [-][1][3e67d6ceafc291d6daba8cd6d7f41c7b][error][yii\base\ErrorException:8] yii\base\ErrorException: A non well formed numeric value encountered in /home/**/**/vendor/nystudio107/craft-webperf/src/recommendations/MemoryLimit.php:114

I have now removed the plugin and can log back in without a problem.

khalwat commented 5 years ago

That's very strange. What version of PHP are you using @chromadesign ?

khalwat commented 5 years ago

So I'm not sure how it'd ever get to where it did based on your stack trace, but addressed in https://github.com/nystudio107/craft-webperf/commit/8e1e060804dbad9335aaf19b222b97d11516486d

Released as Webperf 1.0.4

chromadesign commented 5 years ago

Thanks for looking into that! Unfortunately I am still encountering the second error right after installing the plugin again. PHP version is 7.2.15.

Here's the full stack trace: `2019-02-27 16:21:17 [-][1][0977b111b0f4e6a44f7579b23bd237d0][error][yii\base\ErrorException:8] yii\base\ErrorException: A non well formed numeric value encountered in /home///vendor/nystudio107/craft-webperf/src/recommendations/MemoryLimit.php:114 Stack trace:

0 /home///vendor/craftcms/cms/src/web/ErrorHandler.php(76): yii\base\ErrorHandler->handleError(8, 'A non well form...', '/home/**/...', 114)

1 /home///vendor/nystudio107/craft-webperf/src/recommendations/MemoryLimit.php(114): craft\web\ErrorHandler->handleError(8, 'A non well form...', '/home/**/...', 114, Array)

2 /home///vendor/nystudio107/craft-webperf/src/recommendations/MemoryLimit.php(38): nystudio107\webperf\recommendations\MemoryLimit->memoryLimit()

3 /home///vendor/nystudio107/craft-webperf/src/base/Recommendation.php(35): nystudio107\webperf\recommendations\MemoryLimit->evaluate()

4 /home///vendor/yiisoft/yii2/base/BaseObject.php(109): nystudio107\webperf\base\Recommendation->init()

5 /home///vendor/nystudio107/craft-webperf/src/base/CleanModel.php(50): yii\base\BaseObject->__construct(Array)

6 /home///vendor/nystudio107/craft-webperf/src/services/Recommendations.php(66): nystudio107\webperf\base\CleanModel->__construct(Array)

7 /home///vendor/nystudio107/craft-webperf/src/Webperf.php(769): nystudio107\webperf\services\Recommendations->list(Object(nystudio107\webperf\models\RecommendationDataSample))

8 [internal function]: nystudio107\webperf\Webperf->nystudio107\webperf{closure}(Object(yii\caching\FileCache))

9 /home///vendor/yiisoft/yii2/caching/Cache.php(595): call_user_func(Object(Closure), Object(yii\caching\FileCache))

10 /home///vendor/nystudio107/craft-webperf/src/Webperf.php(773): yii\caching\Cache->getOrSet('webperf-recomme...', Object(Closure), 60)

11 /home///vendor/nystudio107/craft-webperf/src/Webperf.php(169): nystudio107\webperf\Webperf->getRecommendationsCount()

12 /home///vendor/craftcms/cms/src/web/twig/variables/Cp.php(133): nystudio107\webperf\Webperf->getCpNavItem()

13 /home///vendor/twig/twig/lib/Twig/Extension/Core.php(1626): craft\web\twig\variables\Cp->nav()

14 /home///vendor/craftcms/cms/src/helpers/Template.php(73): twig_get_attribute(Object(craft\web\twig\Environment), Object(Twig_Source), Object(craft\web\twig\variables\Cp), 'nav', Array, 'method', false, false)

15 /home///storage/runtime/compiled_templates/ef/ef66fbea8732fe2418c7ebc40f7b49d2fca4568f4f28e0cc6d9f30afe396805f.php(195): craft\helpers\Template::attribute(Object(craft\web\twig\Environment), Object(Twig_Source), Object(craft\web\twig\variables\Cp), 'nav', Array, 'method')

16 /home///vendor/twig/twig/lib/Twig/Template.php(189): __TwigTemplate_7e89eaa15bd1c373873f900b73defa023cb12b48e008619a6e4d29c91f829467->block_body(Array, Array)

17 /home///storage/runtime/compiled_templates/db/dbdc8cb81e5773efd5de27bd3da2ab4a672814446bdd58173800b5869c01ade5.php(60): Twig_Template->displayBlock('body', Array, Array)

18 /home///vendor/twig/twig/lib/Twig/Template.php(386): __TwigTemplate_448399f8e06cec2a6aa98f702d938b0edd5bb82b0f1c3b95cea3104a5f4ce2b9->doDisplay(Array, Array)

19 /home///vendor/craftcms/cms/src/web/twig/Template.php(49): Twig_Template->displayWithErrorHandling(Array, Array)

20 /home///vendor/twig/twig/lib/Twig/Template.php(363): craft\web\twig\Template->displayWithErrorHandling(Array, Array)

21 /home///vendor/craftcms/cms/src/web/twig/Template.php(31): Twig_Template->display(Array, Array)

22 /home///storage/runtime/compiled_templates/a1/a1fc86af3eb0323b3b1663f2f1deeef83b4c010d22a3f704754790838185954b.php(40): craft\web\twig\Template->display(Array, Array)

23 /home///vendor/twig/twig/lib/Twig/Template.php(386): __TwigTemplate_10dda3cac79e544fbb2065355947b20cf14061918a405c062b3182d37b143e42->doDisplay(Array, Array)

24 /home///vendor/craftcms/cms/src/web/twig/Template.php(49): Twig_Template->displayWithErrorHandling(Array, Array)

25 /home///vendor/twig/twig/lib/Twig/Template.php(363): craft\web\twig\Template->displayWithErrorHandling(Array, Array)

26 /home///vendor/craftcms/cms/src/web/twig/Template.php(31): Twig_Template->display(Array, Array)

27 /home///storage/runtime/compiled_templates/ef/ef66fbea8732fe2418c7ebc40f7b49d2fca4568f4f28e0cc6d9f30afe396805f.php(95): craft\web\twig\Template->display(Array, Array)

28 /home///vendor/twig/twig/lib/Twig/Template.php(386): __TwigTemplate_7e89eaa15bd1c373873f900b73defa023cb12b48e008619a6e4d29c91f829467->doDisplay(Array, Array)

29 /home///vendor/craftcms/cms/src/web/twig/Template.php(49): Twig_Template->displayWithErrorHandling(Array, Array)

30 /home///vendor/twig/twig/lib/Twig/Template.php(363): craft\web\twig\Template->displayWithErrorHandling(Array, Array)

31 /home///vendor/craftcms/cms/src/web/twig/Template.php(31): Twig_Template->display(Array, Array)

32 /home///storage/runtime/compiled_templates/a4/a4c9ef47f3e51f9da0282f49ab2bb5368d9fd507980a45e087cb6b11179022c1.php(36): craft\web\twig\Template->display(Array, Array)

33 /home///vendor/twig/twig/lib/Twig/Template.php(386): __TwigTemplate_0d345ce5b870e3ba24b56082da07b7f91d8f6291f703d66ea9da7040c57a09df->doDisplay(Array, Array)

34 /home///vendor/craftcms/cms/src/web/twig/Template.php(49): Twig_Template->displayWithErrorHandling(Array, Array)

35 /home///vendor/twig/twig/lib/Twig/Template.php(363): craft\web\twig\Template->displayWithErrorHandling(Array, Array)

36 /home///vendor/craftcms/cms/src/web/twig/Template.php(31): Twig_Template->display(Array, Array)

37 /home///vendor/twig/twig/lib/Twig/Template.php(371): craft\web\twig\Template->display(Array)

38 /home///vendor/twig/twig/lib/Twig/Environment.php(289): Twig_Template->render(Array)

39 /home///vendor/craftcms/cms/src/web/View.php(337): Twig_Environment->render('plugin-store/_i...', Array)

40 /home///vendor/craftcms/cms/src/web/View.php(384): craft\web\View->renderTemplate('plugin-store/_i...', Array)

41 /home///vendor/craftcms/cms/src/web/Controller.php(161): craft\web\View->renderPageTemplate('plugin-store/_i...', Array)

42 /home///vendor/craftcms/cms/src/controllers/PluginStoreController.php(76): craft\web\Controller->renderTemplate('plugin-store/_i...')

43 [internal function]: craft\controllers\PluginStoreController->actionIndex()

44 /home///vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)

45 /home///vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array)

46 /home///vendor/craftcms/cms/src/web/Controller.php(109): yii\base\Controller->runAction('', Array)

47 /home///vendor/yiisoft/yii2/base/Module.php(528): craft\web\Controller->runAction('', Array)

48 /home///vendor/craftcms/cms/src/web/Application.php(297): yii\base\Module->runAction('plugin-store', Array)

49 /home///vendor/yiisoft/yii2/web/Application.php(103): craft\web\Application->runAction('plugin-store', Array)

50 /home///vendor/craftcms/cms/src/web/Application.php(286): yii\web\Application->handleRequest(Object(craft\web\Request))

51 /home///vendor/yiisoft/yii2/base/Application.php(386): craft\web\Application->handleRequest(Object(craft\web\Request))

52 /home///web/index.php(21): yii\base\Application->run()

53 {main}

`

khalwat commented 5 years ago

What is your memory_limit set to in your php.ini? You can view this in Craft via Utilities->Php Info

chromadesign commented 5 years ago

memory_limit is set to 1 GB

khalwat commented 5 years ago

Wow that's definitely set too high -- but I'll put in a fix.

chromadesign commented 5 years ago

Yes, I'll set that back again. It was just a test to see if it would help somehow. Initial value was 256 MB if that helps.

khalwat commented 5 years ago

btw, the setting should be:

256M

Not 256MB in your php.ini file

khalwat commented 5 years ago

Addressed in 1.0.5: https://github.com/nystudio107/craft-webperf/releases/tag/1.0.5

chromadesign commented 5 years ago

It is, just wrote MB here :)

chromadesign commented 5 years ago

Sorry, tried again but still no luck. With memory_limit set back to 256 M again, I get the old error message again saying division by zero on line 40...

khalwat commented 5 years ago

Yeah so that doesn't make sense to me. I'm explicitly checking to see whether that value is 0 (empty()):

https://github.com/nystudio107/craft-webperf/blob/v1/src/recommendations/MemoryLimit.php#L39

khalwat commented 5 years ago

I think I have an idea @chromadesign !

khalwat commented 5 years ago

This should be fixed in 1.0.6: https://github.com/nystudio107/craft-webperf/releases/tag/1.0.6