-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
Closed
Milestone
Description
Symfony version(s) affected: 5.1.7
Description
I couldn't manage to get opcache working for a small application that uses api-platform. The only thing that I got was php exiting with error code 70.
After some digging I found the following:
Preloader catches \ReflectionException, but in some cases a parent exception can be thrown.
https://github.com/symfony/symfony/blob/5.x/src/Symfony/Component/DependencyInjection/Dumper/Preloader.php#L109-L111
I added a catch (\Throwable $e) { var_dump($e) }
and got the following when trying to load Sensio\Bundle\FrameworkExtraBundle\EventListener\SecurityListener
:
object(Error)#19 (7) {
["message":protected]=>
string(94) "Interface 'Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface' not found"
["string":"Error":private]=>
string(0) ""
["code":protected]=>
int(0)
["file":protected]=>
string(78) "/app/vendor/symfony/security-core/Authorization/ExpressionLanguageProvider.php"
["line":protected]=>
int(22)
Stacktrace:
#0 /app/vendor/composer/ClassLoader.php(444): include()
#1 /app/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/app/vendor/com...')
#2 [internal function]: Composer\Autoload\ClassLoader->loadClass('Symfony\\Compone...')
#3 [internal function]: spl_autoload_call('Symfony\\Compone...')
#4 /app/vendor/symfony/security-core/Authorization/ExpressionLanguage.php(18): class_exists('Symfony\\Compone...')
#5 /app/vendor/composer/ClassLoader.php(444): include('/app/vendor/sym...')
#6 /app/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/app/vendor/com...')
#7 [internal function]: Composer\Autoload\ClassLoader->loadClass('Symfony\\Compone...')
#8 /app/vendor/sensio/framework-extra-bundle/src/Security/ExpressionLanguage.php(21): spl_autoload_call('Symfony\\Compone...')
#9 /app/vendor/composer/ClassLoader.php(444): include('/app/vendor/sen...')
#10 /app/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile('/app/vendor/com...')
#11 [internal function]: Composer\Autoload\ClassLoader->loadClass('Sensio\\Bundle\\F...')
#12 [internal function]: spl_autoload_call('Sensio\\Bundle\\F...')
#13 /app/vendor/symfony/dependency-injection/Dumper/Preloader.php(84): ReflectionClass->__construct('Sensio\\Bundle\\F...')
#14 /app/vendor/symfony/dependency-injection/Dumper/Preloader.php(128): Symfony\Component\DependencyInjection\Dumper\Preloader::doPreload('Sensio\\Bundle\\F...', Array)
#15 /app/vendor/symfony/dependency-injection/Dumper/Preloader.php(109): Symfony\Component\DependencyInjection\Dumper\Preloader::preloadType(Object(ReflectionNamedType), Array)
#16 /app/vendor/symfony/dependency-injection/Dumper/Preloader.php(65): Symfony\Component\DependencyInjection\Dumper\Preloader::doPreload('Sensio\\Bundle\\F...', Array)
#17 /app/var/cache/prod/App_KernelProdContainer.preload.php(389): Symfony\Component\DependencyInjection\Dumper\Preloader::preload(Array)
#18 /app/config/preload.php(4): require('/app/var/cache/...')
#19 {main}"
debug_print_backtrace:
#0 Symfony\Component\DependencyInjection\Dumper\Preloader::doPreload(Sensio\Bundle\FrameworkExtraBundle\Security\ExpressionLanguage, Array ([Sensio\Bundle\FrameworkExtraBundle\EventListener\SecurityListener] => 1,[Sensio\Bundle\FrameworkExtraBundle\Request\ArgumentNameConverter] => 1,[Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactoryInterface] => 1,[Symfony\Component\HttpKernel\Event\ControllerArgumentsEvent] => 1,[Symfony\Component\HttpKernel\HttpKernelInterface] => 1,[Symfony\Component\HttpFoundation\Request] => 1,[Symfony\Component\HttpFoundation\Session\SessionInterface] => 1,[Symfony\Component\HttpFoundation\Session\SessionBagInterface] => 1,[Sensio\Bundle\FrameworkExtraBundle\Security\ExpressionLanguage] => 1)) called at [/app/vendor/symfony/dependency-injection/Dumper/Preloader.php:128]
#1 Symfony\Component\DependencyInjection\Dumper\Preloader::preloadType(ReflectionNamedType Object (), Array ([Sensio\Bundle\FrameworkExtraBundle\EventListener\SecurityListener] => 1,[Sensio\Bundle\FrameworkExtraBundle\Request\ArgumentNameConverter] => 1,[Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactoryInterface] => 1,[Symfony\Component\HttpKernel\Event\ControllerArgumentsEvent] => 1,[Symfony\Component\HttpKernel\HttpKernelInterface] => 1,[Symfony\Component\HttpFoundation\Request] => 1,[Symfony\Component\HttpFoundation\Session\SessionInterface] => 1,[Symfony\Component\HttpFoundation\Session\SessionBagInterface] => 1,[Sensio\Bundle\FrameworkExtraBundle\Security\ExpressionLanguage] => 1)) called at [/app/vendor/symfony/dependency-injection/Dumper/Preloader.php:109]
#2 Symfony\Component\DependencyInjection\Dumper\Preloader::doPreload(Sensio\Bundle\FrameworkExtraBundle\EventListener\SecurityListener, Array ([Sensio\Bundle\FrameworkExtraBundle\EventListener\SecurityListener] => 1,[Sensio\Bundle\FrameworkExtraBundle\Request\ArgumentNameConverter] => 1,[Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactoryInterface] => 1,[Symfony\Component\HttpKernel\Event\ControllerArgumentsEvent] => 1,[Symfony\Component\HttpKernel\HttpKernelInterface] => 1,[Symfony\Component\HttpFoundation\Request] => 1,[Symfony\Component\HttpFoundation\Session\SessionInterface] => 1,[Symfony\Component\HttpFoundation\Session\SessionBagInterface] => 1,[Sensio\Bundle\FrameworkExtraBundle\Security\ExpressionLanguage] => 1)) called at [/app/vendor/symfony/dependency-injection/Dumper/Preloader.php:65]
#3 Symfony\Component\DependencyInjection\Dumper\Preloader::preload(Array ([0] => Sensio\Bundle\FrameworkExtraBundle\EventListener\SecurityListener)) called at [/app/var/cache/prod/App_KernelProdContainer.preload.php:389]
#4 require(/app/var/cache/prod/App_KernelProdContainer.preload.php) called at [/app/config/preload.php:4]
Possible Solution
Change catch (\ReflectionException $e)
to catch (\Throwable $e)