sonata-project / SonataAdminBundle

The missing Symfony Admin Generator
https://docs.sonata-project.org/projects/SonataAdminBundle
MIT License
2.11k stars 1.26k forks source link

Memory exhaustion when opening 'ACL Editor' with 128Mo on dev #3990

Closed AienTech closed 8 years ago

AienTech commented 8 years ago

Environment

env = dev

Sonata packages

$ composer show sonata-project/*
sonata-project/admin-bundle              3.3.2  The missing Symfony Admin Generator
sonata-project/block-bundle              3.0.1  Symfony SonataBlockBundle
sonata-project/cache                     1.0.7  Cache library
sonata-project/cache-bundle              2.2.5  This bundle provides caching services
sonata-project/classification-bundle     3.0.0  Symfony SonataClassificationBundle
sonata-project/core-bundle               3.0.3  Symfony SonataCoreBundle
sonata-project/datagrid-bundle           2.2    Symfony SonataDatagridBundle
sonata-project/doctrine-extensions       1.0.2  Doctrine2 behavioral extensions
sonata-project/doctrine-orm-admin-bundle 3.0.4  Symfony Sonata / Integrate Doctrine ORM into the SonataAdminBundle
sonata-project/easy-extends-bundle       2.1.10 Symfony SonataEasyExtendsBundle
sonata-project/exporter                  1.5.0  Lightweight Exporter library
sonata-project/google-authenticator      1.0.2  Library to integrate Google Authenticator into a PHP project
sonata-project/intl-bundle               2.2.4  Symfony SonataIntlBundle
sonata-project/media-bundle              3.0.0  Symfony SonataMediaBundle
sonata-project/notification-bundle       3.0.0  Symfony SonataNotificationBundle
sonata-project/seo-bundle                2.0.2  Symfony SonataSeoBundle
sonata-project/user-bundle               3.0.1  Symfony SonataUserBundle

Symfony packages

$ composer show symfony/*
symfony/monolog-bundle     2.11.1  Symfony MonologBundle
symfony/phpunit-bridge     v2.8.8  Symfony PHPUnit Bridge
symfony/polyfill-apcu      v1.2.0  Symfony polyfill backporting apcu_* functions to lower PHP versions
symfony/polyfill-intl-icu  v1.2.0  Symfony polyfill for intl's ICU-related data and classes
symfony/polyfill-mbstring  v1.2.0  Symfony polyfill for the Mbstring extension
symfony/polyfill-php54     v1.2.0  Symfony polyfill backporting some PHP 5.4+ features to lower PHP versions
symfony/polyfill-php55     v1.2.0  Symfony polyfill backporting some PHP 5.5+ features to lower PHP versions
symfony/polyfill-php56     v1.2.0  Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions
symfony/polyfill-php70     v1.2.0  Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions
symfony/polyfill-util      v1.2.0  Symfony utilities for portability of PHP codes
symfony/security-acl       v2.8.0  Symfony Security Component - ACL (Access Control List)
symfony/swiftmailer-bundle v2.3.11 Symfony SwiftmailerBundle
symfony/symfony            v2.8.8  The Symfony PHP framework

PHP version

$ php -v
PHP 7.0.8 (cli) (built: Jun 22 2016 16:45:35) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.8, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans

Subject

When accessing ACL editor for Admin Class, server returns 500. It seems that the problem is in Memory limit, which is in this situation 128 Mo.

Steps to reproduce

  1. configure sonata to use ACL (exactly as said in documentation)
  2. edit an entitiy and click on 'Edit ACL'

    Expected results

Sonata ACL Editor

Actual results

Server Error 500 (Memory exhaustion)

greg0ire commented 8 years ago

Hi. Can you provide a stack trace? It might be useful.

AienTech commented 8 years ago

ok, so here is the dev.log... it's all I get dev.log.txt

it happens after clicking on 'Edit ACL'

greg0ire commented 8 years ago

Use the symfony profiler to query the corresponding url and get a real stack trace.

AienTech commented 8 years ago

the thing is that symfony profiler also stops working. I can't get any traces on this error. :( that why I said it's a bug... nothing is working after this error

greg0ire commented 8 years ago

Use the profiler in a page that works. There is a form in it to find the profile you are looking for.

soullivaneuh commented 8 years ago

Please also update your issue body according to the GitHub template.

AienTech commented 8 years ago

@greg0ire noting is traced! seriously! after entering '{id}/edit' there is no more logging... I even used Profiler to trace stacks! but nothing!

greg0ire commented 8 years ago

I even used Profiler to trace stacks!

What do you mean by that?

Maybe I was not clear enough:

  1. Do the faulty action. you should not be able to see the stack trace.
  2. Go on a page that works.
  3. Open the profiler.
  4. Click "last 10".
  5. Find the profile.
  6. Find the stack trace in the profile.

Is this what you really mean by "use the profiler to trace stacks"? If yes this is probably a php Fatal error that cannot be recovered from. If yes, check the log of your web server instead of the log of your application.

And also, calm down.

soullivaneuh commented 8 years ago

@AienTech Please also again: https://github.com/sonata-project/SonataAdminBundle/blob/3.x/.github/ISSUE_TEMPLATE.md

This is not an option.

Ref: https://github.com/sonata-project/SonataAdminBundle/blob/3.x/CONTRIBUTING.md#issues

AienTech commented 8 years ago

Oh, I'm really sorry, I am calm actually, but I use too much emotions when I write comments :) my bad.

And yes, that was exactly what I did.

So, here is logs, after clicking Edit ACL (I really hope that memory exhaustion is not the reason!)

[05-Jul-2016 15:18:38 Europe/Berlin] PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 8192 bytes) in /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/Type/CheckboxType.php on line 45
[05-Jul-2016 15:18:38 Europe/Berlin] PHP Stack trace:
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   1. {main}() /home/aien/Web/MrAlef/MRA/web/app_dev.php:0
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   2. Symfony\Component\HttpKernel\Kernel->handle() /home/aien/Web/MrAlef/MRA/web/app_dev.php:30
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   3. Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:193
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   4. Symfony\Component\HttpKernel\HttpKernel->handle() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/DependencyInjection/ContainerAwareHttpKernel.php:69
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   5. Symfony\Component\HttpKernel\HttpKernel->handleRaw() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:64
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   6. call_user_func_array:{/home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:144}() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:144
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   7. Sonata\AdminBundle\Controller\CRUDController->aclAction() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:144
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   8. Symfony\Component\Form\Form->createView() /home/aien/Web/MrAlef/MRA/vendor/sonata-project/admin-bundle/Controller/CRUDController.php:910
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   9. Symfony\Component\Form\Form->createView() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php:1062
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  10. Symfony\Component\Form\Form->createView() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php:1062
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  11. Symfony\Component\Form\Extension\DataCollector\Proxy\ResolvedTypeDataCollectorProxy->buildView() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php:1059
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  12. Symfony\Component\Form\ResolvedFormType->buildView() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/DataCollector/Proxy/ResolvedTypeDataCollectorProxy.php:120
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  13. Symfony\Component\Form\Extension\Core\Type\CheckboxType->buildView() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/ResolvedFormType.php:209
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  14. array_replace() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/Type/CheckboxType.php:45
[05-Jul-2016 15:18:38 Europe/Berlin] PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Debug/Exception/OutOfMemoryException.php on line 1
[05-Jul-2016 15:18:38 Europe/Berlin] PHP Stack trace:
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   1. {main}() /home/aien/Web/MrAlef/MRA/web/app_dev.php:0
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   2. Symfony\Component\HttpKernel\Kernel->handle() /home/aien/Web/MrAlef/MRA/web/app_dev.php:30
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   3. Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:193
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   4. Symfony\Component\HttpKernel\HttpKernel->handle() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/DependencyInjection/ContainerAwareHttpKernel.php:69
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   5. Symfony\Component\HttpKernel\HttpKernel->handleRaw() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:64
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   6. call_user_func_array:{/home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:144}() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:144
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   7. Sonata\AdminBundle\Controller\CRUDController->aclAction() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:144
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   8. Symfony\Component\Form\Form->createView() /home/aien/Web/MrAlef/MRA/vendor/sonata-project/admin-bundle/Controller/CRUDController.php:910
[05-Jul-2016 15:18:38 Europe/Berlin] PHP   9. Symfony\Component\Form\Form->createView() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php:1062
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  10. Symfony\Component\Form\Form->createView() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php:1062
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  11. Symfony\Component\Form\Extension\DataCollector\Proxy\ResolvedTypeDataCollectorProxy->buildView() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php:1059
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  12. Symfony\Component\Form\ResolvedFormType->buildView() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/DataCollector/Proxy/ResolvedTypeDataCollectorProxy.php:120
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  13. Symfony\Component\Form\Extension\Core\Type\CheckboxType->buildView() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/ResolvedFormType.php:209
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  14. array_replace() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/Type/CheckboxType.php:45
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  15. Symfony\Component\Debug\ErrorHandler::handleFatalError() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php:0
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  16. spl_autoload_call() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php:642
[05-Jul-2016 15:18:38 Europe/Berlin] PHP  17. Symfony\Component\Debug\DebugClassLoader->loadClass() /home/aien/Web/MrAlef/MRA/vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php:642
greg0ire commented 8 years ago

I really hope that memory exhaustion is not the reason

Of course it is lol! What else could it be? Closing.

AienTech commented 8 years ago

LOL... I don't want to believe this!! please say something else... why it is so heavy???

greg0ire commented 8 years ago

128 Mo is indeed quite big. Should we reopen this @sonata-project/contributors ?

soullivaneuh commented 8 years ago

You are on a dev env. 128 Mo is a very high limit for this.

An another issue could be opened if this report a real and precise reason of too much memory consumption (e.g. other thing than "I have a 500 on my application).

AienTech commented 8 years ago

@Soullivaneuh sure... I'll report it as soon as I can