Skip to content

Performance issue in cache clear / warmup with dependency-injection 4.1.8 and 3.4.19 #29336

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
alexander-schranz opened this issue Nov 26, 2018 · 24 comments

Comments

@alexander-schranz
Copy link
Contributor

alexander-schranz commented Nov 26, 2018

Symfony version(s) affected: 4.1.8, confirmed by others 3.4.19 also affected

Description

We at sulu did found a huge performance difference when building the cache after upgrading from 4.1.7 to 4.1.8.
It ends up in max_execution_timeout in some cases.

How to reproduce

git clone git@github.com:sulu/sulu-minimal.git
cd sulu-minimal
git checkout develop

# install dependencies with symfony  4.1.8
composer update
time bin/adminconsole cache:clear
time bin/websiteconsole cache:clear

# vs before 4.1.7
composer require symfony/dependency-injection:4.1.7
time bin/adminconsole cache:clear
time bin/websiteconsole cache:clear
Command Dependency Injection 4.1.7 Dependency Injection 4.1.8
time bin/adminconsole cache:clear 5,68s
user 1,06s system 93% cpu 7,242 total
26,61s
user 1,14s system 99% cpu 27,885 total
time bin/websiteconsole cache:clear 4,94s
user 0,82s system 98% cpu 5,843 total
62,15s
user 0,97s system 99% cpu 1:03,26 total

Possible solution

Not sure as there seems to be many changes in the dependency-injection component which could cause the issue symfony/dependency-injection@v4.1.7...v4.1.8.

This seems to be the commit where the container build performance changed:

symfony/dependency-injection@5ec6098

Should be this PRs: #29247

@nicolas-grekas
Copy link
Member

nicolas-grekas commented Nov 26, 2018

Grrr.
The issue is that PhpDumper::analyzeCircularReferences() needs to discover all circular loops in the service graph and currently does so using a naïve recursive strategy.
I'll have a look and will need your help to confirm the patch when I have something.

@alexander-schranz
Copy link
Contributor Author

@nicolas-grekas thank you to have a look at it and of course you can ping me if I can test something.

@nicolas-grekas
Copy link
Member

nicolas-grekas commented Nov 27, 2018

First simple idea:

--- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
+++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
@@ -156,16 +156,32 @@ class PhpDumper extends Dumper
 
         (new AnalyzeServiceReferencesPass(false, !$this->getProxyDumper() instanceof NullDumper))->process($this->container);
         $this->circularReferences = array();
-        foreach (array(true, false) as $byConstructor) {
-            foreach ($this->container->getCompiler()->getServiceReferenceGraph()->getNodes() as $id => $node) {
-                if (!$node->getValue() instanceof Definition) {
-                    continue;
+        $entryNodes = array();
+        foreach ($this->container->getCompiler()->getServiceReferenceGraph()->getNodes() as $id => $node) {
+            if (!$node->getValue() instanceof Definition) {
+                continue;
+            }
+            if (!$isEntryNode = $node->getValue()->isPublic()) {
+                $isEntryNode = true;
+                foreach ($node->getInEdges() as $edge) {
+                    if (!$edge->isLazy() && !$edge->isWeak()) {
+                        $isEntryNode = false;
+                        break;
+                    }
                 }
+            }
+            if ($isEntryNode) {
+                $entryNodes[$id] = $node;
+            }
+        }
+        foreach (array(true, false) as $byConstructor) {
+            foreach ($entryNodes as $id => $node) {
                 $currentPath = array($id => true);
                 $this->analyzeCircularReferences($node->getOutEdges(), $currentPath, $id, $byConstructor);
             }
         }
         $this->container->getCompiler()->getServiceReferenceGraph()->clear();
+        $entryNodes = array();
 
         $this->docStar = $options['debug'] ? '*' : '';

@alexander-schranz
Copy link
Contributor Author

@nicolas-grekas its a little bit faster but still a huge difference to v4.1.7

v4.1.8 with your patch:

26,72s user 1,05s system 99% cpu 27,824 total

v4.1.8:

29,26s user 0,94s system 99% cpu 30,240 total

v4.1.7:

6,82s user 0,79s system 99% cpu 7,662 total

Can't give any stats about the website kernel/container build currently as it seems to run endless (>5min vs 6.58s before) on 4.1.8 with and without the patch on my current machine.

@validaide-mark-bijl
Copy link

validaide-mark-bijl commented Nov 27, 2018

Hi,

We are on 3.4 and I just upgraded from 3.4.18 to 3.4.19 this morning. I also started experiencing this problem - as in, I assume it is this problem. I am not able to run a performance benchmark also as it doesn't seem to finish either on my machine after 300 seconds.

What I noticed is that the first time I load a page, there seems to be no problem, but after making a few changes to my code (e.g. Controller, Repository) this problem occurs.

Just downgraded to 3.4.18...

If this helps:
3.4.19
time bin/console cache:clear
real 0m32.435s
user 0m29.626s
sys 0m2.479s

3.4.18
time bin/console cache:clear
real 0m20.046s
user 0m16.577s
sys 0m2.420s

Sorry I can't be of more help, but I am not very familiar with the PhpDumper...
Cheers,
Mark

@umulmrum
Copy link
Contributor

umulmrum commented Nov 27, 2018

Relative numbers are similar for me (using 3.4.x). The patch reduces the number of calls to the ServiceReferenceGraphNode and ServiceReferenceGraphEdge methods from ~2.4m to ~2.0m and the calls to PhpDumper::analyzeCircularReferences() by about 10%.

Thanks for caring @nicolas-grekas

@nicolas-grekas
Copy link
Member

I don't have a better patch right now. Are you using PHP 7.2? Because while I measure a tremendously higher number of calls to analyzeCircularReferences in v4.1.8, that translates to a 2x increase in computation time for me (from ~1.5s to ~3.5s).

@umulmrum
Copy link
Contributor

umulmrum commented Nov 27, 2018

When removing xDebug completely, it's about factor 5 between Symfony 3.4.18 and 3.4.19 (4s vs. 21s) without patch.
At most half a second (2-3%) difference between PHP 7.1.24 and 7.2.12.

Regarding the absolute numbers, your test container might be less complex - maybe the algorithm has at least quadratic complexity and the decline in performance starts to kick in badly if the container reaches a certain threshold?

@nicolas-grekas
Copy link
Member

I'm using the above sulu container tonne able to compare. Continuing... :)

@alexander-schranz
Copy link
Contributor Author

alexander-schranz commented Nov 27, 2018

@nicolas-grekas as there seems to be also a big difference betweens admin and website kernel of the sulu containers. I will mention the difference between them there are at first place the routes which are configured (on website less then on admin) and some bundles. See bundles.php marked with context website or admin for the registered bundle difference.
Also there are some services which are only registered in admin but not in website you can run: bin/adminconsole debug:container --tag sulu.context --show-private and the other way around bin/websiteconsole debug:container --tag sulu.context --show-private to get services which are registered for website but not admin.

Disabling xDebug with php -n I can give you currently the following benchmarks:

Admin: time php -n bin/adminconsole cache:clear --env=prod

Version Time
4.1.7: 2,23s user 1,23s system 81% cpu 4,261 total
4.1.8: 3,46s user 1,29s system 85% cpu 5,530 total
4.1.8 (with patch) 3,03s user 1,05s system 99% cpu 4,116 total

Website: time php -n bin/websiteconsole cache:clear --env=prod

Version Time
4.1.7: 1,83s user 0,88s system 84% cpu 3,209 total
4.1.8: 105,74s user 1,19s system 99% cpu 1:47,67 total
4.1.8 (with patch) 101,75s user 1,06s system 99% cpu 1:43,17 total

So in case of the admin its a lot better when disabling xdebug but for the website its still very long. Its a little bit strange as the website kernel is in case of dependencies smaller as the admin kernel.

Admin Services: ~1511 (bin/adminconsole debug:container --show-private)
Website Services: ~1386 (bin/websiteconsole debug:container --show-private)

So the container difference look like this not sure if this helps:

Difference in debug:container
diff --git a/admin.txt b/admin.txt
index f089e1b..b0003fb 100644
--- a/admin.txt
+++ b/website.txt
@@ -2,9 +2,9 @@
 Symfony Container Services
 ==========================
 
   Service ID                                                                                               Class name                                                                                  
 -------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------ 
   Doctrine\Bundle\PHPCRBundle\Command\LoadFixtureCommand                                                   Doctrine\Bundle\PHPCRBundle\Command\LoadFixtureCommand                                      
   Doctrine\Bundle\PHPCRBundle\Command\MigratorMigrateCommand                                               Doctrine\Bundle\PHPCRBundle\Command\MigratorMigrateCommand                                  
   Doctrine\Bundle\PHPCRBundle\Command\NodeDumpCommand                                                      Doctrine\Bundle\PHPCRBundle\Command\NodeDumpCommand                                         
@@ -39,7 +39,7 @@ Symfony Container Services
   FOS\RestBundle\View\ViewHandlerInterface                                                                 alias for "fos_rest.view_handler.default"                                                   
   JMS\Serializer\ArrayTransformerInterface                                                                 alias for "jms_serializer.serializer"                                                       
   JMS\Serializer\SerializerInterface                                                                       alias for "jms_serializer.serializer"                                                       
-  PHPCR\SessionInterface                                                                                   alias for "sulu_document_manager.decorated_default_session"                                     
+  PHPCR\SessionInterface                                                                                   alias for "sulu_document_manager.decorated_live_session"                                    
   Psr\Cache\CacheItemPoolInterface                                                                         alias for "cache.app"                                                                       
   Psr\Container\ContainerInterface                                                                         alias for "service_container"                                                               
   Psr\Log\LoggerInterface                                                                                  alias for "monolog.logger"                                                                  
@@ -49,7 +49,6 @@ Symfony Container Services
   Sulu\Component\Rest\ListBuilder\ListRestHelperInterface                                                  alias for "sulu_core.list_rest_helper"                                                      
   Sulu\Component\Rest\ListBuilder\Metadata\FieldDescriptorFactoryInterface                                 alias for "sulu_core.list_builder.field_descriptor_factory"                                 
   Sulu\Component\Rest\RestHelperInterface                                                                  alias for "sulu_core.rest_helper"                                                           
-  Sulu\Component\Security\Authorization\SecurityCheckerInterface                                           alias for "sulu_security.security_checker"                                                      
   Sulu\Component\Webspace\Manager\WebspaceManagerInterface                                                 alias for "sulu_core.webspace.webspace_manager"                                             
   Swift_Mailer                                                                                             alias for "swiftmailer.mailer.default"                                                      
   Swift_Spool                                                                                              alias for "swiftmailer.mailer.default.spool.memory"                                         
@@ -77,29 +76,14 @@ Symfony Container Services
   Symfony\Component\HttpKernel\HttpKernelInterface                                                         alias for "http_kernel"                                                                     
   Symfony\Component\HttpKernel\KernelInterface                                                             alias for "kernel"                                                                          
   Symfony\Component\PropertyAccess\PropertyAccessorInterface                                               alias for "property_accessor"                                                               
-  Symfony\Component\Routing\Generator\UrlGeneratorInterface                                                alias for "router.default"                                                                      
-  Symfony\Component\Routing\Matcher\UrlMatcherInterface                                                    alias for "router.default"                                                                      
+  Symfony\Component\Routing\Generator\UrlGeneratorInterface                                                alias for "cmf_routing.router"                                                              
+  Symfony\Component\Routing\Matcher\UrlMatcherInterface                                                    alias for "cmf_routing.router"                                                              
   Symfony\Component\Routing\RequestContext                                                                 alias for "router.request_context"                                                          
-  Symfony\Component\Routing\RequestContextAwareInterface                                                   alias for "router.default"                                                                      
-  Symfony\Component\Routing\RouterInterface                                                                alias for "router.default"                                                                      
-  Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface                            alias for "security.authentication.manager"                                                     
-  Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface                       alias for "security.token_storage"                                                              
-  Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface                             alias for "debug.security.access.decision_manager"                                              
-  Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface                              alias for "security.authorization_checker"                                                      
-  Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface                                          alias for "security.encoder_factory.generic"                                                    
-  Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface                                     alias for "security.user_password_encoder.generic"                                              
-  Symfony\Component\Security\Core\Role\RoleHierarchyInterface                                              alias for "security.role_hierarchy"                                                             
-  Symfony\Component\Security\Core\Security                                                                 alias for "security.helper"                                                                     
-  Symfony\Component\Security\Core\User\UserCheckerInterface                                                alias for "security.user_checker"                                                               
-  Symfony\Component\Security\Core\User\UserProviderInterface                                               alias for "sulu_security.user_provider"                                                         
+  Symfony\Component\Routing\RequestContextAwareInterface                                                   alias for "cmf_routing.router"                                                              
+  Symfony\Component\Routing\RouterInterface                                                                alias for "cmf_routing.router"                                                              
   Symfony\Component\Security\Csrf\CsrfTokenManagerInterface                                                alias for "security.csrf.token_manager"                                                     
   Symfony\Component\Security\Csrf\TokenGenerator\TokenGeneratorInterface                                   alias for "security.csrf.token_generator"                                                   
   Symfony\Component\Security\Csrf\TokenStorage\TokenStorageInterface                                       alias for "security.csrf.token_storage"                                                     
-  Symfony\Component\Security\Guard\GuardAuthenticatorHandler                                               alias for "security.authentication.guard_handler"                                               
-  Symfony\Component\Security\Http\Authentication\AuthenticationUtils                                       alias for "security.authentication_utils"                                                       
-  Symfony\Component\Security\Http\Firewall                                                                 alias for "debug.security.firewall"                                                             
-  Symfony\Component\Security\Http\HttpUtils                                                                alias for "security.http_utils"                                                                 
-  Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface                           alias for "security.authentication.session_strategy"                                            
   Symfony\Component\Serializer\Encoder\DecoderInterface                                                    alias for "serializer"                                                                      
   Symfony\Component\Serializer\Encoder\EncoderInterface                                                    alias for "serializer"                                                                      
   Symfony\Component\Serializer\Mapping\ClassDiscriminatorResolverInterface                                 alias for "serializer.mapping.class_discriminator_resolver"                                 
@@ -133,8 +117,6 @@ Symfony Container Services
   argument_resolver.session                                                                                Symfony\Component\HttpKernel\Controller\ArgumentResolver\SessionValueResolver               
   argument_resolver.variadic                                                                               Symfony\Component\HttpKernel\Controller\ArgumentResolver\VariadicValueResolver              
   assets._default_package                                                                                  Symfony\Component\Asset\PathPackage                                                         
-  assets._package_sulu_admin                                                                               Symfony\Component\Asset\PathPackage                                                             
-  assets._version_sulu_admin                                                                               Symfony\Component\Asset\VersionStrategy\JsonManifestVersionStrategy                             
   assets.context                                                                                           Symfony\Component\Asset\Context\RequestStackContext                                         
   assets.empty_package                                                                                     Symfony\Component\Asset\Package                                                             
   assets.empty_version_strategy                                                                            Symfony\Component\Asset\VersionStrategy\EmptyVersionStrategy                                
@@ -163,8 +145,6 @@ Symfony Container Services
   cache.default_redis_provider                                                                             alias for ".cache_connection.GD_MSZC"                                                       
   cache.global_clearer                                                                                     Symfony\Component\HttpKernel\CacheClearer\Psr6CacheClearer                                  
   cache.property_access                                                                                    Symfony\Component\Cache\Adapter\ArrayAdapter                                                
-  cache.security_expression_language                                                                       Symfony\Component\Cache\Adapter\TraceableAdapter                                                
-  cache.security_expression_language.recorder_inner                                                        Symfony\Component\Cache\Adapter\AdapterInterface                                                
   cache.serializer                                                                                         Symfony\Component\Cache\Adapter\TraceableAdapter                                            
   cache.serializer.recorder_inner                                                                          Symfony\Component\Cache\Adapter\AdapterInterface                                            
   cache.system                                                                                             Symfony\Component\Cache\Adapter\TraceableAdapter                                            
@@ -174,6 +154,27 @@ Symfony Container Services
   cache.validator.recorder_inner                                                                           Symfony\Component\Cache\Adapter\AdapterInterface                                            
   cache_clearer                                                                                            Symfony\Component\HttpKernel\CacheClearer\ChainCacheClearer                                 
   cache_warmer                                                                                             Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate                               
+  cmf_routing.dynamic_router                                                                               Symfony\Cmf\Bundle\RoutingBundle\Routing\DynamicRouter                                      
+  cmf_routing.enhancer.content_repository                                                                  Symfony\Cmf\Component\Routing\Enhancer\ContentRepositoryEnhancer                            
+  cmf_routing.enhancer.controller_for_templates_by_class                                                   Symfony\Cmf\Component\Routing\Enhancer\FieldByClassEnhancer                                 
+  cmf_routing.enhancer.controllers_by_class                                                                Symfony\Cmf\Component\Routing\Enhancer\FieldByClassEnhancer                                 
+  cmf_routing.enhancer.controllers_by_type                                                                 Symfony\Cmf\Component\Routing\Enhancer\FieldMapEnhancer                                     
+  cmf_routing.enhancer.default_controller                                                                  Symfony\Cmf\Component\Routing\Enhancer\FieldPresenceEnhancer                                
+  cmf_routing.enhancer.explicit_template                                                                   Symfony\Cmf\Component\Routing\Enhancer\FieldPresenceEnhancer                                
+  cmf_routing.enhancer.route_content                                                                       Symfony\Cmf\Component\Routing\Enhancer\RouteContentEnhancer                                 
+  cmf_routing.enhancer.templates_by_class                                                                  Symfony\Cmf\Component\Routing\Enhancer\FieldByClassEnhancer                                 
+  cmf_routing.final_matcher                                                                                Symfony\Cmf\Component\Routing\NestedMatcher\UrlMatcher                                      
+  cmf_routing.generator                                                                                    Symfony\Cmf\Component\Routing\ContentAwareGenerator                                         
+  cmf_routing.matcher.dummy_collection                                                                     Symfony\Component\Routing\RouteCollection                                                   
+  cmf_routing.matcher.dummy_context                                                                        Symfony\Component\Routing\RequestContext                                                    
+  cmf_routing.nested_matcher                                                                               Symfony\Cmf\Component\Routing\NestedMatcher\NestedMatcher                                   
+  cmf_routing.persistence.doctrine.route_condition_metadata_listener                                       Symfony\Cmf\Bundle\RoutingBundle\Doctrine\RouteConditionMetadataListener                    
+  cmf_routing.redirect_controller                                                                          Symfony\Cmf\Bundle\RoutingBundle\Controller\RedirectController                              
+  cmf_routing.route_provider                                                                               alias for "sulu_website.provider.content"                                                   
+  cmf_routing.route_type_form_type                                                                         Symfony\Cmf\Bundle\RoutingBundle\Form\Type\RouteTypeType                                    
+  cmf_routing.router                                                                                       Symfony\Cmf\Component\Routing\ChainRouter                                                   
+  cmf_routing.validator.route_defaults                                                                     Symfony\Cmf\Bundle\RoutingBundle\Validator\Constraints\RouteDefaultsTemplatingValidator     
+  cmf_sulu_custom_urls.final_matcher                                                                       Symfony\Cmf\Component\Routing\NestedMatcher\UrlMatcher                                      
   config.resource.self_checking_resource_checker                                                           Symfony\Component\Config\Resource\SelfCheckingResourceChecker                               
   config_cache_factory                                                                                     Symfony\Component\Config\ResourceCheckerConfigCacheFactory                                  
   console.command.about                                                                                    Symfony\Bundle\FrameworkBundle\Command\AboutCommand                                         
@@ -268,7 +269,6 @@ Symfony Container Services
   data_collector.memory                                                                                    Symfony\Component\HttpKernel\DataCollector\MemoryDataCollector                              
   data_collector.request                                                                                   Symfony\Component\HttpKernel\DataCollector\RequestDataCollector                             
   data_collector.router                                                                                    Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector                            
-  data_collector.security                                                                                  Symfony\Bundle\SecurityBundle\DataCollector\SecurityDataCollector                               
   data_collector.time                                                                                      Symfony\Component\HttpKernel\DataCollector\TimeDataCollector                                
   data_collector.translation                                                                               Symfony\Component\Translation\DataCollector\TranslationDataCollector                        
   data_collector.twig                                                                                      Symfony\Bridge\Twig\DataCollector\TwigDataCollector                                         
@@ -279,9 +279,6 @@ Symfony Container Services
   debug.file_link_formatter                                                                                Symfony\Component\HttpKernel\Debug\FileLinkFormatter                                        
   debug.file_link_formatter.url_format                                                                     string                                                                                      
   debug.log_processor                                                                                      Symfony\Bridge\Monolog\Processor\DebugProcessor                                             
-  debug.security.access.decision_manager                                                                   Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager                    
-  debug.security.access.decision_manager.inner                                                             Symfony\Component\Security\Core\Authorization\AccessDecisionManager                             
-  debug.security.firewall                                                                                  Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener                                   
   debug.validator                                                                                          Symfony\Component\Validator\Validator\TraceableValidator                                    
   debug.validator.inner                                                                                    Symfony\Component\Validator\Validator\ValidatorInterface                                    
   dependency_injection.config.container_parameters_resource_checker                                        Symfony\Component\DependencyInjection\Config\ContainerParametersResourceChecker             
@@ -372,9 +369,6 @@ Symfony Container Services
   doctrine_cache.providers.doctrine.orm.default_metadata_cache                                             Doctrine\Common\Cache\ArrayCache                                                            
   doctrine_cache.providers.doctrine.orm.default_query_cache                                                Doctrine\Common\Cache\ArrayCache                                                            
   doctrine_cache.providers.doctrine.orm.default_result_cache                                               Doctrine\Common\Cache\ArrayCache                                                            
-  doctrine_cache.providers.sulu_collaboration_connection                                                   Doctrine\Common\Cache\FilesystemCache                                                           
-  doctrine_cache.providers.sulu_collaboration_entity                                                       Doctrine\Common\Cache\FilesystemCache                                                           
-  doctrine_cache.providers.sulu_preview                                                                    Doctrine\Common\Cache\FilesystemCache                                                           
   doctrine_cache.stats_command                                                                             Doctrine\Bundle\DoctrineCacheBundle\Command\StatsCommand                                    
   doctrine_phpcr                                                                                           Doctrine\Bundle\PHPCRBundle\ManagerRegistry                                                 
   doctrine_phpcr.admin.default_credentials                                                                 PHPCR\SimpleCredentials                                                                     
@@ -391,7 +385,7 @@ Symfony Container Services
   doctrine_phpcr.credentials                                                                               PHPCR\SimpleCredentials                                                                     
   doctrine_phpcr.data_collector                                                                            Doctrine\Bundle\PHPCRBundle\DataCollector\PHPCRDataCollector                                
   doctrine_phpcr.default_credentials                                                                       PHPCR\SimpleCredentials                                                                     
-  doctrine_phpcr.default_session                                                                           alias for "sulu_document_manager.decorated_default_session"                                     
+  doctrine_phpcr.default_session                                                                           Jackalope\Session                                                                           
   doctrine_phpcr.default_session.event_manager                                                             Symfony\Bridge\Doctrine\ContainerAwareEventManager                                          
   doctrine_phpcr.initializer_manager                                                                       Doctrine\Bundle\PHPCRBundle\Initializer\InitializerManager                                  
   doctrine_phpcr.jackalope.repository.default                                                              Jackalope\Repository                                                                        
@@ -414,7 +408,7 @@ Symfony Container Services
   doctrine_phpcr.logger.chain                                                                              Jackalope\Transport\Logging\LoggerChain                                                     
   doctrine_phpcr.logger.profiling                                                                          Jackalope\Transport\Logging\DebugStack                                                      
   doctrine_phpcr.logger.stop_watch                                                                         Doctrine\Bundle\PHPCRBundle\DataCollector\StopWatchLogger                                   
-  doctrine_phpcr.session                                                                                   alias for "sulu_document_manager.decorated_default_session"                                     
+  doctrine_phpcr.session                                                                                   alias for "sulu_document_manager.decorated_live_session"                                    
   doctrine_phpcr.session.event_manager                                                                     Symfony\Bridge\Doctrine\ContainerAwareEventManager                                          
   dtl_content.form.factory.document_type                                                                   Sulu\Component\Content\Form\Type\DocumentObjectType                                         
   dtl_content.form.type.home                                                                               Sulu\Bundle\ContentBundle\Form\Type\HomeDocumentType                                        
@@ -488,7 +482,7 @@ Symfony Container Services
   fos_rest.normalizer.camel_keys_with_leading_underscore                                                   FOS\RestBundle\Normalizer\CamelKeysNormalizerWithLeadingUnderscore                          
   fos_rest.request.param_fetcher                                                                           FOS\RestBundle\Request\ParamFetcher                                                         
   fos_rest.request.param_fetcher.reader                                                                    FOS\RestBundle\Request\ParamReader                                                          
-  fos_rest.router                                                                                          alias for "router.default"                                                                      
+  fos_rest.router                                                                                          alias for "cmf_routing.router"                                                              
   fos_rest.routing.loader.controller                                                                       FOS\RestBundle\Routing\Loader\RestRouteLoader                                               
   fos_rest.routing.loader.directory                                                                        FOS\RestBundle\Routing\Loader\DirectoryRouteLoader                                          
   fos_rest.routing.loader.processor                                                                        FOS\RestBundle\Routing\Loader\RestRouteProcessor                                            
@@ -513,8 +507,6 @@ Symfony Container Services
   fos_rest.zone_request_matcher                                                                            Symfony\Component\HttpFoundation\RequestMatcher                                             
   fos_rest.zone_request_matcher.65ad4850deb1c91d8dff16de50b0fb5d12ed31b093115543cfee6418680cfb21e70354fe   Symfony\Component\HttpFoundation\RequestMatcher                                             
   fragment.handler                                                                                         Symfony\Component\HttpKernel\DependencyInjection\LazyLoadingFragmentHandler                 
-  fragment.listener                                                                                        Symfony\Component\HttpKernel\EventListener\FragmentListener                                     
-  fragment.renderer.hinclude                                                                               Symfony\Component\HttpKernel\Fragment\HIncludeFragmentRenderer                                  
   fragment.renderer.inline                                                                                 Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer                                
   framework_extra_bundle.argument_name_convertor                                                           Sensio\Bundle\FrameworkExtraBundle\Request\ArgumentNameConverter                            
   framework_extra_bundle.date_time_param_converter                                                         Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\DateTimeParamConverter            
@@ -674,7 +666,6 @@ Symfony Container Services
   monolog.logger.profiler                                                                                  Symfony\Bridge\Monolog\Logger                                                               
   monolog.logger.request                                                                                   Symfony\Bridge\Monolog\Logger                                                               
   monolog.logger.router                                                                                    Symfony\Bridge\Monolog\Logger                                                               
-  monolog.logger.security                                                                                  Symfony\Bridge\Monolog\Logger                                                                   
   monolog.logger.sulu_document_manager                                                                     Symfony\Bridge\Monolog\Logger                                                               
   monolog.logger.templating                                                                                Symfony\Bridge\Monolog\Logger                                                               
   monolog.logger.translation                                                                               Symfony\Bridge\Monolog\Logger                                                               
@@ -695,7 +686,7 @@ Symfony Container Services
   request_stack                                                                                            Symfony\Component\HttpFoundation\RequestStack                                               
   resolve_controller_name_subscriber                                                                       Symfony\Bundle\FrameworkBundle\EventListener\ResolveControllerNameSubscriber                
   response_listener                                                                                        Symfony\Component\HttpKernel\EventListener\ResponseListener                                 
-  router                                                                                                   alias for "router.default"                                                                      
+  router                                                                                                   alias for "cmf_routing.router"                                                              
   router.cache_warmer                                                                                      Symfony\Bundle\FrameworkBundle\CacheWarmer\RouterCacheWarmer                                
   router.default                                                                                           Symfony\Bundle\FrameworkBundle\Routing\Router                                               
   router.request_context                                                                                   Symfony\Component\Routing\RequestContext                                                    
@@ -711,99 +702,9 @@ Symfony Container Services
   routing.loader.xml                                                                                       Symfony\Component\Routing\Loader\XmlFileLoader                                              
   routing.loader.yml                                                                                       Symfony\Component\Routing\Loader\YamlFileLoader                                             
   routing.resolver                                                                                         Symfony\Component\Config\Loader\LoaderResolver                                              
-  security.access.authenticated_voter                                                                      Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter                          
-  security.access.decision_manager                                                                         alias for "debug.security.access.decision_manager"                                              
-  security.access.expression_voter                                                                         Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter                             
-  security.access.simple_role_voter                                                                        Symfony\Component\Security\Core\Authorization\Voter\RoleVoter                                   
-  security.access_listener                                                                                 Symfony\Component\Security\Http\Firewall\AccessListener                                         
-  security.access_map                                                                                      Symfony\Component\Security\Http\AccessMap                                                       
-  security.authentication.basic_entry_point                                                                Symfony\Component\Security\Http\EntryPoint\BasicAuthenticationEntryPoint                        
-  security.authentication.custom_failure_handler                                                           Symfony\Component\Security\Http\Authentication\CustomAuthenticationFailureHandler               
-  security.authentication.custom_success_handler                                                           Symfony\Component\Security\Http\Authentication\CustomAuthenticationSuccessHandler               
-  security.authentication.failure_handler                                                                  Symfony\Component\Security\Http\Authentication\DefaultAuthenticationFailureHandler              
-  security.authentication.failure_handler.admin.json_login                                                 Symfony\Component\Security\Http\Authentication\CustomAuthenticationFailureHandler               
-  security.authentication.form_entry_point                                                                 Symfony\Component\Security\Http\EntryPoint\FormAuthenticationEntryPoint                         
-  security.authentication.guard_handler                                                                    Symfony\Component\Security\Guard\GuardAuthenticatorHandler                                      
-  security.authentication.listener.abstract                                                                                                                                                                
-  security.authentication.listener.anonymous                                                               Symfony\Component\Security\Http\Firewall\AnonymousAuthenticationListener                        
-  security.authentication.listener.anonymous.admin                                                         Symfony\Component\Security\Http\Firewall\AnonymousAuthenticationListener                        
-  security.authentication.listener.basic                                                                   Symfony\Component\Security\Http\Firewall\BasicAuthenticationListener                            
-  security.authentication.listener.form                                                                    Symfony\Component\Security\Http\Firewall\UsernamePasswordFormAuthenticationListener             
-  security.authentication.listener.guard                                                                   Symfony\Component\Security\Guard\Firewall\GuardAuthenticationListener                           
-  security.authentication.listener.json                                                                    Symfony\Component\Security\Http\Firewall\UsernamePasswordJsonAuthenticationListener             
-  security.authentication.listener.json.admin                                                              Symfony\Component\Security\Http\Firewall\UsernamePasswordJsonAuthenticationListener             
-  security.authentication.listener.rememberme                                                              Symfony\Component\Security\Http\Firewall\RememberMeListener                                     
-  security.authentication.listener.remote_user                                                             Symfony\Component\Security\Http\Firewall\RemoteUserAuthenticationListener                       
-  security.authentication.listener.simple_form                                                             Symfony\Component\Security\Http\Firewall\SimpleFormAuthenticationListener                       
-  security.authentication.listener.simple_preauth                                                          Symfony\Component\Security\Http\Firewall\SimplePreAuthenticationListener                        
-  security.authentication.listener.x509                                                                    Symfony\Component\Security\Http\Firewall\X509AuthenticationListener                             
-  security.authentication.manager                                                                          Symfony\Component\Security\Core\Authentication\AuthenticationProviderManager                    
-  security.authentication.provider.anonymous                                                               Symfony\Component\Security\Core\Authentication\Provider\AnonymousAuthenticationProvider         
-  security.authentication.provider.anonymous.admin                                                         Symfony\Component\Security\Core\Authentication\Provider\AnonymousAuthenticationProvider         
-  security.authentication.provider.dao                                                                     Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider               
-  security.authentication.provider.dao.admin                                                               Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider               
-  security.authentication.provider.guard                                                                   Symfony\Component\Security\Guard\Provider\GuardAuthenticationProvider                           
-  security.authentication.provider.ldap_bind                                                               Symfony\Component\Security\Core\Authentication\Provider\LdapBindAuthenticationProvider          
-  security.authentication.provider.pre_authenticated                                                       Symfony\Component\Security\Core\Authentication\Provider\PreAuthenticatedAuthenticationProvider  
-  security.authentication.provider.rememberme                                                              Symfony\Component\Security\Core\Authentication\Provider\RememberMeAuthenticationProvider        
-  security.authentication.provider.simple                                                                  Symfony\Component\Security\Core\Authentication\Provider\SimpleAuthenticationProvider            
-  security.authentication.rememberme.services.abstract                                                                                                                                                     
-  security.authentication.rememberme.services.persistent                                                   Symfony\Component\Security\Http\RememberMe\PersistentTokenBasedRememberMeServices               
-  security.authentication.rememberme.services.simplehash                                                   Symfony\Component\Security\Http\RememberMe\TokenBasedRememberMeServices                         
-  security.authentication.retry_entry_point                                                                Symfony\Component\Security\Http\EntryPoint\RetryAuthenticationEntryPoint                        
-  security.authentication.session_strategy                                                                 Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy                           
-  security.authentication.session_strategy.admin                                                           alias for "security.authentication.session_strategy"                                            
-  security.authentication.session_strategy_noop                                                            Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy                           
-  security.authentication.simple_success_failure_handler                                                   Symfony\Component\Security\Http\Authentication\SimpleAuthenticationHandler                      
-  security.authentication.success_handler                                                                  Symfony\Component\Security\Http\Authentication\DefaultAuthenticationSuccessHandler              
-  security.authentication.success_handler.admin.json_login                                                 Symfony\Component\Security\Http\Authentication\CustomAuthenticationSuccessHandler               
-  security.authentication.switchuser_listener                                                              Symfony\Component\Security\Http\Firewall\SwitchUserListener                                     
-  security.authentication.trust_resolver                                                                   Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver                      
-  security.authentication_utils                                                                            Symfony\Component\Security\Http\Authentication\AuthenticationUtils                              
-  security.authorization_checker                                                                           Symfony\Component\Security\Core\Authorization\AuthorizationChecker                              
-  security.channel_listener                                                                                Symfony\Component\Security\Http\Firewall\ChannelListener                                        
-  security.command.user_password_encoder                                                                   Symfony\Bundle\SecurityBundle\Command\UserPasswordEncoderCommand                                
-  security.context_listener                                                                                Symfony\Component\Security\Http\Firewall\ContextListener                                        
-  security.context_listener.0                                                                              Symfony\Component\Security\Http\Firewall\ContextListener                                        
   security.csrf.token_generator                                                                            Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator                        
   security.csrf.token_manager                                                                              Symfony\Component\Security\Csrf\CsrfTokenManager                                            
   security.csrf.token_storage                                                                              Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage                            
-  security.encoder_factory                                                                                 alias for "security.encoder_factory.generic"                                                    
-  security.encoder_factory.generic                                                                         Symfony\Component\Security\Core\Encoder\EncoderFactory                                          
-  security.exception_listener                                                                              Symfony\Component\Security\Http\Firewall\ExceptionListener                                      
-  security.exception_listener.admin                                                                        Symfony\Component\Security\Http\Firewall\ExceptionListener                                      
-  security.expression_language                                                                             Symfony\Component\Security\Core\Authorization\ExpressionLanguage                                
-  security.firewall                                                                                        alias for "debug.security.firewall"                                                             
-  security.firewall.config                                                                                 Symfony\Bundle\SecurityBundle\Security\FirewallConfig                                           
-  security.firewall.context                                                                                Symfony\Bundle\SecurityBundle\Security\FirewallContext                                          
-  security.firewall.map                                                                                    Symfony\Bundle\SecurityBundle\Security\FirewallMap                                              
-  security.firewall.map.config.admin                                                                       Symfony\Bundle\SecurityBundle\Security\FirewallConfig                                           
-  security.firewall.map.context.admin                                                                      Symfony\Bundle\SecurityBundle\Security\FirewallContext                                          
-  security.helper                                                                                          Symfony\Component\Security\Core\Security                                                        
-  security.http_utils                                                                                      Symfony\Component\Security\Http\HttpUtils                                                       
-  security.logout.handler.cookie_clearing                                                                  Symfony\Component\Security\Http\Logout\CookieClearingLogoutHandler                              
-  security.logout.handler.csrf_token_clearing                                                              Symfony\Component\Security\Http\Logout\CsrfTokenClearingLogoutHandler                           
-  security.logout.handler.session                                                                          Symfony\Component\Security\Http\Logout\SessionLogoutHandler                                     
-  security.logout.success_handler                                                                          Symfony\Component\Security\Http\Logout\DefaultLogoutSuccessHandler                              
-  security.logout_listener                                                                                 Symfony\Component\Security\Http\Firewall\LogoutListener                                         
-  security.logout_listener.admin                                                                           Symfony\Component\Security\Http\Firewall\LogoutListener                                         
-  security.logout_url_generator                                                                            Symfony\Component\Security\Http\Logout\LogoutUrlGenerator                                       
-  security.password_encoder                                                                                alias for "security.user_password_encoder.generic"                                              
-  security.rememberme.response_listener                                                                    Symfony\Component\Security\Http\RememberMe\ResponseListener                                     
-  security.rememberme.token.provider.in_memory                                                             Symfony\Component\Security\Core\Authentication\RememberMe\InMemoryTokenProvider                 
-  security.role_hierarchy                                                                                  Symfony\Component\Security\Core\Role\RoleHierarchy                                              
-  security.token_storage                                                                                   Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage                       
-  security.user.provider.chain                                                                             Symfony\Component\Security\Core\User\ChainUserProvider                                          
-  security.user.provider.concrete.sulu                                                                     alias for "sulu_security.user_provider"                                                         
-  security.user.provider.in_memory                                                                         Symfony\Component\Security\Core\User\InMemoryUserProvider                                       
-  security.user.provider.in_memory.user                                                                    Symfony\Component\Security\Core\User\User                                                       
-  security.user.provider.ldap                                                                              Symfony\Component\Security\Core\User\LdapUserProvider                                           
-  security.user.provider.missing                                                                           Symfony\Component\Security\Core\User\MissingUserProvider                                        
-  security.user_checker                                                                                    Symfony\Component\Security\Core\User\UserChecker                                                
-  security.user_checker.admin                                                                              alias for "security.user_checker"                                                               
-  security.user_password_encoder.generic                                                                   Symfony\Component\Security\Core\Encoder\UserPasswordEncoder                                     
-  security.user_value_resolver                                                                             Symfony\Component\Security\Http\Controller\UserValueResolver                                    
-  security.validator.user_password                                                                         Symfony\Component\Security\Core\Validator\Constraints\UserPasswordValidator                     
   sensio_framework_extra.cache.listener                                                                    Sensio\Bundle\FrameworkExtraBundle\EventListener\HttpCacheListener                          
   sensio_framework_extra.controller.listener                                                               Sensio\Bundle\FrameworkExtraBundle\EventListener\ControllerListener                         
   sensio_framework_extra.converter.doctrine.orm                                                            Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\DoctrineParamConverter            
@@ -816,7 +717,6 @@ Symfony Container Services
   sensio_framework_extra.routing.loader.annot_file                                                         Symfony\Component\Routing\Loader\AnnotationFileLoader                                       
   sensio_framework_extra.security.expression_language                                                      alias for "sensio_framework_extra.security.expression_language.default"                     
   sensio_framework_extra.security.expression_language.default                                              Sensio\Bundle\FrameworkExtraBundle\Security\ExpressionLanguage                              
-  sensio_framework_extra.security.listener                                                                 Sensio\Bundle\FrameworkExtraBundle\EventListener\SecurityListener                               
   sensio_framework_extra.view.guesser                                                                      Sensio\Bundle\FrameworkExtraBundle\Templating\TemplateGuesser                               
   sensio_framework_extra.view.listener                                                                     Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener                           
   serializer                                                                                               Symfony\Component\Serializer\Serializer                                                     
@@ -910,17 +810,6 @@ Symfony Container Services
   sulu.repository.tag                                                                                      Sulu\Bundle\TagBundle\Entity\TagRepository                                                  
   sulu.repository.user                                                                                     Sulu\Bundle\SecurityBundle\Entity\UserRepository                                            
   sulu.util.node_helper                                                                                    Sulu\Component\Util\SuluNodeHelper                                                          
-  sulu_admin.admin_controller                                                                              Sulu\Bundle\AdminBundle\Controller\AdminController                                              
-  sulu_admin.admin_pool                                                                                    Sulu\Bundle\AdminBundle\Admin\AdminPool                                                         
-  sulu_admin.field_type_option_registry                                                                    Sulu\Bundle\AdminBundle\FieldType\FieldTypeOptionRegistry                                       
-  sulu_admin.form_metadata.form_xml_loader                                                                 Sulu\Bundle\AdminBundle\FormMetadata\FormXmlLoader                                              
-  sulu_admin.js_config_pool                                                                                Sulu\Bundle\AdminBundle\Admin\JsConfigPool                                                      
-  sulu_admin.metadata.resource_metadata_mapper                                                             Sulu\Bundle\AdminBundle\ResourceMetadata\ResourceMetadataMapper                                 
-  sulu_admin.metadata.resource_metadata_pool                                                               Sulu\Bundle\AdminBundle\ResourceMetadata\ResourceMetadataPool                                   
-  sulu_admin.metadata.resource_metadata_provider.form                                                      Sulu\Bundle\AdminBundle\ResourceMetadata\FormResourceMetadataProvider                           
-  sulu_admin.navigation_registry                                                                           Sulu\Bundle\AdminBundle\Admin\NavigationRegistry                                                
-  sulu_admin.route_registry                                                                                Sulu\Bundle\AdminBundle\Admin\RouteRegistry                                                     
-  sulu_category.admin                                                                                      Sulu\Bundle\CategoryBundle\Admin\CategoryAdmin                                                  
   sulu_category.category_manager                                                                           Sulu\Bundle\CategoryBundle\Category\CategoryManager                                         
   sulu_category.category_repository                                                                        alias for "sulu.repository.category"                                                        
   sulu_category.category_request_handler                                                                   Sulu\Component\Category\Request\CategoryRequestHandler                                      
@@ -930,13 +819,9 @@ Symfony Container Services
   sulu_category.keyword_repository                                                                         alias for "sulu.repository.keyword"                                                         
   sulu_category.reference_store.category                                                                   Sulu\Bundle\WebsiteBundle\ReferenceStore\ReferenceStore                                     
   sulu_category.twig_extension                                                                             Sulu\Bundle\CategoryBundle\Twig\CategoryTwigExtension                                       
-  sulu_collaboration.connection_cache                                                                      alias for "doctrine_cache.providers.sulu_collaboration_connection"                              
-  sulu_collaboration.entity_cache                                                                          alias for "doctrine_cache.providers.sulu_collaboration_entity"                                  
-  sulu_collaboration.jsconfig                                                                              Sulu\Bundle\AdminBundle\Admin\JsConfig                                                          
   sulu_contact.account_factory                                                                             Sulu\Bundle\ContactBundle\Contact\AccountFactory                                            
   sulu_contact.account_listener                                                                            Sulu\Bundle\ContactBundle\EventListener\AccountListener                                     
   sulu_contact.account_manager                                                                             Sulu\Bundle\ContactBundle\Contact\AccountManager                                            
-  sulu_contact.admin                                                                                       Sulu\Bundle\ContactBundle\Admin\ContactAdmin                                                    
   sulu_contact.command.recover                                                                             Sulu\Bundle\ContactBundle\Command\AccountRecoverCommand                                     
   sulu_contact.contact_manager                                                                             Sulu\Bundle\ContactBundle\Contact\ContactManager                                            
   sulu_contact.contact_title_repository                                                                    Sulu\Bundle\ContactBundle\Entity\ContactTitleRepository                                     
@@ -954,7 +839,6 @@ Symfony Container Services
   sulu_contact.twig.cache                                                                                  Doctrine\Common\Cache\ArrayCache                                                            
   sulu_contact.util.id_converter                                                                           Sulu\Bundle\ContactBundle\Util\CustomerIdConverter                                          
   sulu_contact.util.index_comparator                                                                       Sulu\Bundle\ContactBundle\Util\IndexComparator                                              
-  sulu_content.admin                                                                                       Sulu\Bundle\ContentBundle\Admin\ContentAdmin                                                    
   sulu_content.command.cleanup_history                                                                     Sulu\Bundle\ContentBundle\Command\CleanupHistoryCommand                                     
   sulu_content.command.copy_locale                                                                         Sulu\Bundle\ContentBundle\Command\ContentLocaleCopyCommand                                  
   sulu_content.command.dump_content_types                                                                  Sulu\Bundle\ContentBundle\Command\ContentTypesDumpCommand                                   
@@ -970,7 +854,6 @@ Symfony Container Services
   sulu_content.compat.serializer.handler.page_bridge                                                       Sulu\Component\Content\Compat\Serializer\PageBridgeHandler                                  
   sulu_content.compat.structure.legacy_property_factory                                                    Sulu\Component\Content\Compat\Structure\LegacyPropertyFactory                               
   sulu_content.content_repository                                                                          Sulu\Component\Content\Repository\ContentRepository                                         
-  sulu_content.content_repository.event_subscriber                                                         Sulu\Component\Content\Repository\Serializer\SerializerEventListener                            
   sulu_content.controller_name_converter                                                                   alias for "controller_name_converter"                                                       
   sulu_content.document.serializer.handler.extension_container                                             Sulu\Bundle\ContentBundle\Serializer\Handler\ExtensionContainerHandler                      
   sulu_content.document.serializer.handler.structure                                                       Sulu\Bundle\ContentBundle\Serializer\Handler\StructureHandler                               
@@ -995,9 +878,7 @@ Symfony Container Services
   sulu_content.import.webspace.xliff12                                                                     Sulu\Component\Import\Format\Xliff12                                                        
   sulu_content.js_config.webspace_input_types                                                              Sulu\Bundle\ContentBundle\Admin\WebspaceInputTypesJsConfig                                  
   sulu_content.jsconfig                                                                                    Sulu\Bundle\AdminBundle\Admin\JsConfig                                                      
-  sulu_content.jsconfig.texteditor_toolbar                                                                 Sulu\Bundle\ContentBundle\Admin\TextEditorJsConfig                                              
   sulu_content.link_tag                                                                                    Sulu\Bundle\ContentBundle\Markup\LinkTag                                                    
-  sulu_content.link_tag.js_config                                                                          Sulu\Bundle\ContentBundle\Admin\LinkProviderJsConfig                                            
   sulu_content.link_tag.page_provider                                                                      Sulu\Bundle\ContentBundle\Markup\Link\PageLinkProvider                                      
   sulu_content.link_tag.provider_pool                                                                      Sulu\Bundle\ContentBundle\Markup\Link\LinkProviderPool                                      
   sulu_content.node_repository                                                                             Sulu\Bundle\ContentBundle\Repository\NodeRepository                                         
@@ -1005,8 +886,6 @@ Symfony Container Services
   sulu_content.preview.defaults_provider                                                                   Sulu\Bundle\ContentBundle\Preview\PageRouteDefaultsProvider                                 
   sulu_content.preview.object_provider                                                                     Sulu\Bundle\ContentBundle\Preview\PageObjectProvider                                        
   sulu_content.reference_store.content                                                                     Sulu\Bundle\WebsiteBundle\ReferenceStore\ReferenceStore                                     
-  sulu_content.resource_locator_controller                                                                 Sulu\Bundle\ContentBundle\Controller\ResourcelocatorController                                  
-  sulu_content.resource_metadata_provider.structure                                                        Sulu\Bundle\ContentBundle\ResourceMetadata\StructureResourceMetadataProvider                    
   sulu_content.rl_repository                                                                               Sulu\Bundle\ContentBundle\Repository\ResourceLocatorRepository                              
   sulu_content.search.event_subscriber.blame_timestamp                                                     Sulu\Bundle\ContentBundle\Search\EventSubscriber\BlameTimestampSubscriber                   
   sulu_content.search.event_subscriber.structure                                                           Sulu\Bundle\ContentBundle\Search\EventSubscriber\StructureSubscriber                        
@@ -1025,8 +904,6 @@ Symfony Container Services
   sulu_content.teaser.manager                                                                              Sulu\Bundle\ContentBundle\Teaser\TeaserManager                                              
   sulu_content.teaser.provider.content                                                                     Sulu\Bundle\ContentBundle\Teaser\ContentTeaserProvider                                      
   sulu_content.teaser.provider_pool                                                                        Sulu\Bundle\ContentBundle\Teaser\Provider\TeaserProviderPool                                
-  sulu_content.teaser.serializer.event_subscriber                                                          Sulu\Bundle\ContentBundle\EventListener\TeaserSerializeEventSubscriber                          
-  sulu_content.webspace.serializer.event_subscriber                                                        Sulu\Bundle\ContentBundle\EventListener\WebspaceSerializeEventSubscriber                        
   sulu_core.array_serialization_visitor                                                                    Sulu\Component\Serializer\ArraySerializationVisitor                                         
   sulu_core.build.builder.database                                                                         Sulu\Bundle\CoreBundle\Build\DatabaseBuilder                                                
   sulu_core.build.builder.fixtures                                                                         Sulu\Bundle\CoreBundle\Build\FixturesBuilder                                                
@@ -1056,7 +933,10 @@ Symfony Container Services
   sulu_core.proxy_manager.configuration                                                                    ProxyManager\Configuration                                                                  
   sulu_core.proxy_manager.file_locator                                                                     ProxyManager\FileLocator\FileLocator                                                        
   sulu_core.proxy_manager.file_writer_generator_strategy                                                   ProxyManager\GeneratorStrategy\FileWriterGeneratorStrategy                                  
-  sulu_core.request_processor.admin                                                                        Sulu\Component\Webspace\Analyzer\Attributes\AdminRequestProcessor                               
+  sulu_core.request_processor.parameter                                                                    Sulu\Component\Webspace\Analyzer\Attributes\ParameterRequestProcessor                       
+  sulu_core.request_processor.portal_information                                                           Sulu\Component\Webspace\Analyzer\Attributes\PortalInformationRequestProcessor               
+  sulu_core.request_processor.url                                                                          Sulu\Component\Webspace\Analyzer\Attributes\UrlRequestProcessor                             
+  sulu_core.request_processor.website                                                                      Sulu\Component\Webspace\Analyzer\Attributes\WebsiteRequestProcessor                         
   sulu_core.rest.datetime_handler                                                                          Sulu\Component\Rest\Handler\DateHandler                                                     
   sulu_core.rest.view_handler.csv                                                                          Sulu\Component\Rest\Csv\CsvHandler                                                          
   sulu_core.rest_helper                                                                                    Sulu\Component\Rest\RestHelper                                                              
@@ -1074,13 +954,24 @@ Symfony Container Services
   sulu_core.webspace.url_provider.default                                                                  Sulu\Component\Webspace\Url\WebspaceUrlProvider                                             
   sulu_core.webspace.webspace_manager                                                                      Sulu\Component\Webspace\Manager\WebspaceManager                                             
   sulu_core.webspace.webspace_manager.url_replacer                                                         Sulu\Component\Webspace\Url\Replacer                                                        
-  sulu_custom_urls.admin                                                                                   Sulu\Bundle\CustomUrlBundle\Admin\CustomUrlAdmin                                                
   sulu_custom_urls.domain_generator                                                                        Sulu\Component\CustomUrl\Generator\Generator                                                
   sulu_custom_urls.event_subscriber.invalidation                                                           Sulu\Component\CustomUrl\Document\Subscriber\InvalidationSubscriber                         
   sulu_custom_urls.initializer                                                                             Sulu\Component\CustomUrl\Document\Initializer\CustomUrlInitializer                          
   sulu_custom_urls.manager                                                                                 Sulu\Component\CustomUrl\Manager\CustomUrlManager                                           
   sulu_custom_urls.repository                                                                              Sulu\Component\CustomUrl\Repository\CustomUrlRepository                                     
-  sulu_custom_urls.serializer.event_subscriber                                                             Sulu\Bundle\CustomUrlBundle\EventListener\CustomUrlSerializeEventSubscriber                     
+  sulu_custom_urls.request_processor                                                                       Sulu\Bundle\CustomUrlBundle\Request\CustomUrlRequestProcessor                               
+  sulu_custom_urls.routing.generator                                                                       Symfony\Cmf\Component\Routing\ProviderBasedGenerator                                        
+  sulu_custom_urls.routing.nested_matcher                                                                  Symfony\Cmf\Component\Routing\NestedMatcher\NestedMatcher                                   
+  sulu_custom_urls.routing.provider                                                                        Sulu\Component\CustomUrl\Routing\CustomUrlRouteProvider                                     
+  sulu_custom_urls.routing.route_enhancers.content                                                         Sulu\Component\CustomUrl\Routing\Enhancers\ContentEnhancer                                  
+  sulu_custom_urls.routing.route_enhancers.external_link                                                   Sulu\Component\CustomUrl\Routing\Enhancers\ExternalLinkEnhancer                             
+  sulu_custom_urls.routing.route_enhancers.internal_link                                                   Sulu\Component\CustomUrl\Routing\Enhancers\InternalLinkEnhancer                             
+  sulu_custom_urls.routing.route_enhancers.redirect                                                        Sulu\Component\CustomUrl\Routing\Enhancers\RedirectEnhancer                                 
+  sulu_custom_urls.routing.route_enhancers.seo                                                             Sulu\Component\CustomUrl\Routing\Enhancers\SeoEnhancer                                      
+  sulu_custom_urls.routing.route_enhancers.structure                                                       Sulu\Component\CustomUrl\Routing\Enhancers\StructureEnhancer                                
+  sulu_custom_urls.routing.route_enhancers.trailing_html                                                   Sulu\Component\CustomUrl\Routing\Enhancers\TrailingHTMLEnhancer                             
+  sulu_custom_urls.routing.route_enhancers.trailing_slash                                                  Sulu\Component\CustomUrl\Routing\Enhancers\TrailingSlashEnhancer                            
+  sulu_custom_urls.routing.router                                                                          Symfony\Cmf\Bundle\RoutingBundle\Routing\DynamicRouter                                      
   sulu_custom_urls.subscriber                                                                              Sulu\Component\CustomUrl\Document\Subscriber\CustomUrlSubscriber                            
   sulu_custom_urls.url_provider                                                                            Sulu\Component\CustomUrl\WebspaceCustomUrlProvider                                          
   sulu_document_manager.command.fixtures_load                                                              Sulu\Bundle\DocumentManagerBundle\Command\FixturesLoadCommand                               
@@ -1091,8 +982,8 @@ Symfony Container Services
   sulu_document_manager.decorated_default_session                                                          Sulu\Bundle\DocumentManagerBundle\Session\Session                                           
   sulu_document_manager.decorated_default_session.inner                                                    Jackalope\Session                                                                           
   sulu_document_manager.decorated_live_session                                                             Sulu\Bundle\DocumentManagerBundle\Session\Session                                           
-  sulu_document_manager.decorated_live_session.inner                                                       Jackalope\Session                                                                               
-  sulu_document_manager.default_session                                                                    alias for "sulu_document_manager.decorated_default_session"                                     
+  sulu_document_manager.decorated_live_session.inner                                                       alias for "sulu_document_manager.decorated_default_session"                                 
+  sulu_document_manager.default_session                                                                    alias for "sulu_document_manager.decorated_live_session"                                    
   sulu_document_manager.document.subscriber.compat.content_mapper                                          Sulu\Component\Content\Document\Subscriber\Compat\ContentMapperSubscriber                   
   sulu_document_manager.document.subscriber.extension                                                      Sulu\Component\Content\Document\Subscriber\ExtensionSubscriber                              
   sulu_document_manager.document.subscriber.fallback_localization                                          Sulu\Component\Content\Document\Subscriber\FallbackLocalizationSubscriber                   
@@ -1183,7 +1074,6 @@ Symfony Container Services
   sulu_media.adapter.gd                                                                                    Imagine\Gd\Imagine                                                                          
   sulu_media.adapter.gmagick                                                                               Imagine\Gmagick\Imagine                                                                     
   sulu_media.adapter.imagick                                                                               Imagine\Imagick\Imagine                                                                     
-  sulu_media.admin                                                                                         Sulu\Bundle\MediaBundle\Admin\MediaAdmin                                                        
   sulu_media.collection_manager                                                                            Sulu\Bundle\MediaBundle\Collection\Manager\CollectionManager                                
   sulu_media.collection_repository                                                                         Sulu\Bundle\MediaBundle\Entity\CollectionRepository                                         
   sulu_media.command.clear_cache                                                                           Sulu\Bundle\MediaBundle\Command\ClearCacheCommand                                           
@@ -1211,7 +1101,6 @@ Symfony Container Services
   sulu_media.image.transformation.paste                                                                    Sulu\Bundle\MediaBundle\Media\ImageConverter\Transformation\PasteTransformation             
   sulu_media.image.transformation.sharpen                                                                  Sulu\Bundle\MediaBundle\Media\ImageConverter\Transformation\SharpenTransformation           
   sulu_media.image.transformation_pool                                                                     Sulu\Bundle\MediaBundle\Media\ImageConverter\TransformationPool                             
-  sulu_media.js_config                                                                                     Sulu\Bundle\AdminBundle\Admin\JsConfig                                                          
   sulu_media.markup                                                                                        Sulu\Bundle\MediaBundle\Markup\MediaTag                                                     
   sulu_media.media_manager                                                                                 Sulu\Bundle\MediaBundle\Media\Manager\MediaManager                                          
   sulu_media.permission_listener                                                                           Sulu\Bundle\MediaBundle\Search\EventListener\PermissionListener                             
@@ -1232,12 +1121,6 @@ Symfony Container Services
   sulu_media.type_manager                                                                                  Sulu\Bundle\MediaBundle\Media\TypeManager\TypeManager                                       
   sulu_media.video_thumbnail_generator                                                                     Sulu\Bundle\MediaBundle\Media\Video\VideoThumbnailService                                   
   sulu_navigationContext.document.subscriber.navigation_context                                            Sulu\Component\Content\Document\Subscriber\NavigationContextSubscriber                      
-  sulu_preview.js_config                                                                                   Sulu\Bundle\AdminBundle\Admin\JsConfig                                                          
-  sulu_preview.preview                                                                                     Sulu\Bundle\PreviewBundle\Preview\Preview                                                       
-  sulu_preview.preview.cache                                                                               alias for "doctrine_cache.providers.sulu_preview"                                               
-  sulu_preview.preview.kernel_factory                                                                      Sulu\Bundle\PreviewBundle\Preview\Renderer\WebsiteKernelFactory                                 
-  sulu_preview.preview.renderer                                                                            Sulu\Bundle\PreviewBundle\Preview\Renderer\PreviewRenderer                                      
-  sulu_preview.preview_controller                                                                          Sulu\Bundle\PreviewBundle\Controller\PreviewController                                          
   sulu_redirect_type.document.subscriber.redirect_type                                                     Sulu\Component\Content\Document\Subscriber\RedirectTypeSubscriber                           
   sulu_resource_segment.document.subscriber.resource_segment                                               Sulu\Component\Content\Document\Subscriber\ResourceSegmentSubscriber                        
   sulu_route.chain_generator                                                                               Sulu\Bundle\RouteBundle\Generator\ChainRouteGenerator                                       
@@ -1248,50 +1131,40 @@ Symfony Container Services
   sulu_route.manager.conflict_resolver.auto_increment                                                      Sulu\Bundle\RouteBundle\Manager\AutoIncrementConflictResolver                               
   sulu_route.manager.route_manager                                                                         Sulu\Bundle\RouteBundle\Manager\RouteManager                                                
   sulu_route.routing.defaults_provider                                                                     Sulu\Bundle\RouteBundle\Routing\Defaults\RouteDefaultsProvider                              
+  sulu_route.routing.final_matcher                                                                         Symfony\Cmf\Component\Routing\NestedMatcher\UrlMatcher                                      
+  sulu_route.routing.generator                                                                             Symfony\Cmf\Component\Routing\ProviderBasedGenerator                                        
+  sulu_route.routing.nested_matcher                                                                        Symfony\Cmf\Component\Routing\NestedMatcher\NestedMatcher                                   
+  sulu_route.routing.provider                                                                              Sulu\Bundle\RouteBundle\Routing\RouteProvider                                               
   sulu_route.routing.proxy_factory                                                                         ProxyManager\Factory\LazyLoadingValueHolderFactory                                          
+  sulu_route.routing.router                                                                                Symfony\Cmf\Bundle\RoutingBundle\Routing\DynamicRouter                                      
   sulu_search.build.index                                                                                  Sulu\Bundle\SearchBundle\Build\IndexBuilder                                                 
-  sulu_search.controller.search                                                                            Sulu\Bundle\SearchBundle\Controller\SearchController                                            
+  sulu_search.controller.website_search                                                                    Sulu\Bundle\SearchBundle\Controller\WebsiteSearchController                                 
+  sulu_search.event_listener.hit                                                                           Sulu\Bundle\ContentBundle\Search\EventListener\HitListener                                  
   sulu_search.index_configuration_provider                                                                 Sulu\Bundle\SearchBundle\Search\Configuration\IndexConfigurationProvider                    
   sulu_search.search.factory                                                                               Sulu\Bundle\SearchBundle\Search\Factory                                                     
   sulu_security.access_control_manager                                                                     Sulu\Component\Security\Authorization\AccessControl\AccessControlManager                    
-  sulu_security.admin                                                                                      Sulu\Bundle\SecurityBundle\Admin\SecurityAdmin                                                  
   sulu_security.authentication_entry_point                                                                 Sulu\Bundle\SecurityBundle\Security\AuthenticationEntryPoint                                
   sulu_security.authentication_handler                                                                     Sulu\Bundle\SecurityBundle\Security\AuthenticationHandler                                   
   sulu_security.build.user                                                                                 Sulu\Bundle\SecurityBundle\Build\UserBuilder                                                
   sulu_security.command.create_role                                                                        Sulu\Bundle\SecurityBundle\Command\CreateRoleCommand                                        
   sulu_security.command.create_user                                                                        Sulu\Bundle\SecurityBundle\Command\CreateUserCommand                                        
-  sulu_security.doctrine_access_control_provider                                                           Sulu\Component\Security\Authorization\AccessControl\DoctrineAccessControlProvider               
   sulu_security.document.serializer.subscriber.security                                                    Sulu\Bundle\SecurityBundle\Serializer\Subscriber\SecuritySubscriber                         
-  sulu_security.encoder_factory                                                                            alias for "security.encoder_factory.generic"                                                    
-  sulu_security.event_listener.security                                                                    Sulu\Bundle\SecurityBundle\EventListener\SuluSecurityListener                                   
   sulu_security.group_repository                                                                           Sulu\Bundle\SecurityBundle\Entity\GroupRepository                                           
-  sulu_security.js_config                                                                                  Sulu\Bundle\SecurityBundle\Security\SecurityConfig                                              
-  sulu_security.last_login_listener                                                                        Sulu\Bundle\SecurityBundle\EventListener\LastLoginListener                                      
   sulu_security.logout_success_handler                                                                     Sulu\Bundle\SecurityBundle\Security\LogoutSuccessHandler                                    
   sulu_security.mask_converter                                                                             Sulu\Component\Security\Authorization\MaskConverter                                         
-  sulu_security.permission_controller                                                                      Sulu\Bundle\SecurityBundle\Controller\PermissionController                                      
-  sulu_security.phpcr_access_control_provider                                                              Sulu\Component\Security\Authorization\AccessControl\PhpcrAccessControlProvider                  
-  sulu_security.profile_controller                                                                         Sulu\Bundle\SecurityBundle\Controller\ProfileController                                         
   sulu_security.salt_generator                                                                             Sulu\Component\Security\Authentication\SaltGenerator                                        
-  sulu_security.security_checker                                                                           Sulu\Component\Security\Authorization\SecurityChecker                                           
   sulu_security.security_context_voter                                                                     Sulu\Component\Security\Authorization\SecurityContextVoter                                  
-  sulu_security.security_systems_select_helper                                                             Sulu\Bundle\SecurityBundle\Admin\Helper\SecuritySystemsSelect                                   
-  sulu_security.serializer.handler.secured_entity                                                          Sulu\Component\Security\Serializer\Subscriber\SecuredEntitySubscriber                           
-  sulu_security.system_language_select_helper                                                              Sulu\Bundle\SecurityBundle\Admin\Helper\SystemLanguageSelect                                    
   sulu_security.token_generator                                                                            Sulu\Bundle\SecurityBundle\Util\TokenGenerator                                              
   sulu_security.twig_extension.user                                                                        Sulu\Bundle\SecurityBundle\Twig\UserTwigExtension                                           
   sulu_security.twig_extension.user.cache                                                                  Doctrine\Common\Cache\ArrayCache                                                            
-  sulu_security.user_locale_listener                                                                       Sulu\Bundle\SecurityBundle\EventListener\UserLocaleListener                                     
   sulu_security.user_manager                                                                               Sulu\Bundle\SecurityBundle\UserManager\UserManager                                          
   sulu_security.user_provider                                                                              Sulu\Bundle\SecurityBundle\User\UserProvider                                                
   sulu_security.user_repository                                                                            Sulu\Component\Security\Authentication\UserRepository                                       
   sulu_security.user_setting_repository                                                                    Sulu\Component\Security\Authentication\UserSettingRepository                                
-  sulu_snippet.admin                                                                                       Sulu\Bundle\SnippetBundle\Admin\SnippetAdmin                                                    
   sulu_snippet.command.export                                                                              Sulu\Bundle\SnippetBundle\Command\SnippetExportCommand                                      
   sulu_snippet.command.import                                                                              Sulu\Bundle\SnippetBundle\Command\SnippetImportCommand                                      
   sulu_snippet.command.locale_copy                                                                         Sulu\Bundle\SnippetBundle\Command\SnippetLocaleCopyCommand                                  
   sulu_snippet.content.snippet                                                                             Sulu\Bundle\SnippetBundle\Content\SnippetContent                                            
-  sulu_snippet.controller.snippet                                                                          Sulu\Bundle\SnippetBundle\Controller\SnippetController                                          
   sulu_snippet.default_snippet.manager                                                                     Sulu\Bundle\SnippetBundle\Snippet\DefaultSnippetManager                                     
   sulu_snippet.document.snippet_initializer                                                                Sulu\Bundle\SnippetBundle\Document\SnippetInitializer                                       
   sulu_snippet.export.snippet                                                                              Sulu\Component\Snippet\Export\SnippetExport                                                 
@@ -1308,7 +1181,6 @@ Symfony Container Services
   sulu_snippet.twig.default_snippet                                                                        Sulu\Bundle\SnippetBundle\Twig\DefaultSnippetTwigExtension                                  
   sulu_snippet.twig.snippet                                                                                Sulu\Bundle\SnippetBundle\Twig\SnippetTwigExtension                                         
   sulu_snippet.twig.snippet.memoized                                                                       Sulu\Bundle\SnippetBundle\Twig\MemoizedSnippetTwigExtension                                 
-  sulu_tag.admin                                                                                           Sulu\Bundle\TagBundle\Admin\TagAdmin                                                            
   sulu_tag.content.type.tag_list                                                                           Sulu\Bundle\TagBundle\Content\Types\TagList                                                 
   sulu_tag.reference_store.tag                                                                             Sulu\Bundle\WebsiteBundle\ReferenceStore\ReferenceStore                                     
   sulu_tag.search.tags_converter                                                                           Sulu\Bundle\TagBundle\Search\TagsConverter                                                  
@@ -1316,17 +1188,24 @@ Symfony Container Services
   sulu_tag.tag_repository                                                                                  Sulu\Bundle\TagBundle\Entity\TagRepository                                                  
   sulu_tag.tag_request_handler                                                                             Sulu\Component\Tag\Request\TagRequestHandler                                                
   sulu_tag.twig_extension                                                                                  Sulu\Bundle\TagBundle\Twig\TagTwigExtension                                                 
-  sulu_website.admin                                                                                       Sulu\Bundle\WebsiteBundle\Admin\WebsiteAdmin                                                    
-  sulu_website.analytics.event_subscriber                                                                  Sulu\Bundle\WebsiteBundle\EventSubscriber\AnalyticsSerializeEventSubscriber                     
   sulu_website.analytics.manager                                                                           Sulu\Bundle\WebsiteBundle\Analytics\AnalyticsManager                                        
   sulu_website.analytics.repository                                                                        Sulu\Bundle\WebsiteBundle\Entity\AnalyticsRepository                                        
+  sulu_website.analytics.response_listener                                                                 Sulu\Bundle\WebsiteBundle\EventListener\AppendAnalyticsListener                             
   sulu_website.command.dump_sitemap                                                                        Sulu\Bundle\WebsiteBundle\Command\DumpSitemapCommand                                        
+  sulu_website.data_collector.sulu_collector                                                               Sulu\Bundle\WebsiteBundle\DataCollector\SuluCollector                                       
+  sulu_website.default_locale.portal_provider                                                              Sulu\Bundle\WebsiteBundle\Locale\PortalDefaultLocaleProvider                                
+  sulu_website.default_locale.provider                                                                     alias for "sulu_website.default_locale.portal_provider"                                     
+  sulu_website.default_locale.request_provider                                                             Sulu\Bundle\WebsiteBundle\Locale\RequestDefaultLocaleProvider                               
   sulu_website.domains.repository                                                                          Sulu\Bundle\WebsiteBundle\Entity\DomainRepository                                           
-  sulu_website.event_listener.translator                                                                   Sulu\Bundle\WebsiteBundle\EventListener\TranslatorEventListener                                 
-  sulu_website.exception.controller                                                                        alias for "twig.controller.exception"                                                           
+  sulu_website.event_subscriber.generator                                                                  Sulu\Bundle\WebsiteBundle\EventSubscriber\GeneratorEventSubscriber                          
+  sulu_website.exception.controller                                                                        alias for "sulu_website.exception_controller"                                               
+  sulu_website.exception_controller                                                                        Sulu\Bundle\WebsiteBundle\Controller\ExceptionController                                    
+  sulu_website.exception_controller.inner                                                                  Symfony\Bundle\TwigBundle\Controller\ExceptionController                                    
   sulu_website.http_cache.clearer                                                                          Sulu\Bundle\WebsiteBundle\Cache\CacheClearer                                                
   sulu_website.navigation_mapper                                                                           Sulu\Bundle\WebsiteBundle\Navigation\NavigationMapper                                       
   sulu_website.navigation_mapper.query_builder                                                             Sulu\Bundle\WebsiteBundle\Navigation\NavigationQueryBuilder                                 
+  sulu_website.provider.content                                                                            Sulu\Bundle\WebsiteBundle\Routing\ContentRouteProvider                                      
+  sulu_website.redirect_exception_listener                                                                 Sulu\Bundle\WebsiteBundle\EventListener\RedirectExceptionSubscriber                         
   sulu_website.reference_store_pool                                                                        Sulu\Bundle\WebsiteBundle\ReferenceStore\ReferenceStorePool                                 
   sulu_website.resolver.parameter                                                                          Sulu\Bundle\WebsiteBundle\Resolver\ParameterResolver                                        
   sulu_website.resolver.request_analyzer                                                                   Sulu\Bundle\WebsiteBundle\Resolver\RequestAnalyzerResolver                                  
@@ -1396,8 +1275,6 @@ Symfony Container Services
   templating.engine.twig                                                                                   Symfony\Bundle\TwigBundle\TwigEngine                                                        
   templating.filename_parser                                                                               Symfony\Bundle\FrameworkBundle\Templating\TemplateFilenameParser                            
   templating.finder                                                                                        Symfony\Bundle\FrameworkBundle\CacheWarmer\TemplateFinder                                   
-  templating.helper.logout_url                                                                             Symfony\Bundle\SecurityBundle\Templating\Helper\LogoutUrlHelper                                 
-  templating.helper.security                                                                               Symfony\Bundle\SecurityBundle\Templating\Helper\SecurityHelper                                  
   templating.loader                                                                                        alias for "templating.loader.filesystem"                                                    
   templating.loader.cache                                                                                  Symfony\Component\Templating\Loader\CacheLoader                                             
   templating.loader.chain                                                                                  Symfony\Component\Templating\Loader\ChainLoader                                             
@@ -1446,7 +1323,7 @@ Symfony Container Services
   twig.command.debug                                                                                       Symfony\Bridge\Twig\Command\DebugCommand                                                    
   twig.command.lint                                                                                        Symfony\Bundle\TwigBundle\Command\LintCommand                                               
   twig.configurator.environment                                                                            Symfony\Bundle\TwigBundle\DependencyInjection\Configurator\EnvironmentConfigurator          
-  twig.controller.exception                                                                                Symfony\Bundle\TwigBundle\Controller\ExceptionController                                        
+  twig.controller.exception                                                                                alias for "sulu_website.exception_controller"                                               
   twig.controller.preview_error                                                                            Symfony\Bundle\TwigBundle\Controller\PreviewErrorController                                 
   twig.exception_listener                                                                                  Symfony\Component\HttpKernel\EventListener\ExceptionListener                                
   twig.extension.assets                                                                                    Symfony\Bridge\Twig\Extension\AssetExtension                                                
@@ -1458,10 +1335,8 @@ Symfony Container Services
   twig.extension.form                                                                                      Symfony\Bridge\Twig\Extension\FormExtension                                                 
   twig.extension.httpfoundation                                                                            Symfony\Bridge\Twig\Extension\HttpFoundationExtension                                       
   twig.extension.httpkernel                                                                                Symfony\Bridge\Twig\Extension\HttpKernelExtension                                           
-  twig.extension.logout_url                                                                                Symfony\Bridge\Twig\Extension\LogoutUrlExtension                                                
   twig.extension.profiler                                                                                  Symfony\Bridge\Twig\Extension\ProfilerExtension                                             
   twig.extension.routing                                                                                   Symfony\Bridge\Twig\Extension\RoutingExtension                                              
-  twig.extension.security                                                                                  Symfony\Bridge\Twig\Extension\SecurityExtension                                                 
   twig.extension.security_csrf                                                                             Symfony\Bridge\Twig\Extension\CsrfExtension                                                 
   twig.extension.trans                                                                                     Symfony\Bridge\Twig\Extension\TranslationExtension                                          
   twig.extension.weblink                                                                                   Symfony\Bridge\Twig\Extension\WebLinkExtension                                              
@@ -1507,5 +1382,5 @@ Symfony Container Services
   web_server.command.server_start                                                                          Symfony\Bundle\WebServerBundle\Command\ServerStartCommand                                   
   web_server.command.server_status                                                                         Symfony\Bundle\WebServerBundle\Command\ServerStatusCommand                                  
   web_server.command.server_stop                                                                           Symfony\Bundle\WebServerBundle\Command\ServerStopCommand                                    

@krowinski
Copy link

same problem here, building DI its taking 9 minutes. Downgraded to v 4.1.7 and it's back to ~47s.

@frenchcomp
Copy link

Same problem here with Symfony 3.4.19. (cache:warmup or first request take 5 minutes with with a very intensive CPU use), few seconds with 3.4.18. In dev env, it's juste unusable.

@alexander-schranz alexander-schranz changed the title Performance issue in cache clear / warmup with dependency-injection 4.1.8 Performance issue in cache clear / warmup with dependency-injection 4.1.8 and 3.4.19 Nov 28, 2018
nicolas-grekas added a commit that referenced this issue Nov 28, 2018
…e graph (nicolas-grekas)

This PR was merged into the 3.4 branch.

Discussion
----------

[DI] fix combinatorial explosion when analyzing the service graph

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #29336
| License       | MIT
| Doc PR        | -

and a few minor things found meanwhile.

Commits
-------

0d0be12 [DI] fix combinatorial explosion when analyzing the service graph
@nicolas-grekas
Copy link
Member

fixed

@frenchcomp
Copy link

Sorry, but with 3.4.20, the bug stills not fixed.

With 3.4.18, on XPS 9350 2,7Ghz, PHP 7.2, bin/console cache:clear takes only 20s
With 3.4.20 this command turns in an infinite loop with an very huge memory leak. (Automatically killed after 15minutes).
Same results after remove vendor and var folders and reinstall vendor) XDebug is disabled

@xabbuh
Copy link
Member

xabbuh commented Dec 7, 2018

@frenchcomp Can you create a small example application that allows to reproduce the issue?

@frenchcomp
Copy link

frenchcomp commented Dec 11, 2018

@xabbuh , Sorry, I start investigation.
It's a standard SF 3.4 project, with :

        doctrine/inflector": "~1.3",
        "doctrine/common": "~2.9",
        "doctrine/orm": "~2.6",
        "doctrine/doctrine-bundle": "~1.9",
        "doctrine/doctrine-cache-bundle": "~1.3",
        "twig/twig":"~2.4",
        "twig/extensions": "~1.5",
        "symfony/swiftmailer-bundle": "~2.6",
        "symfony/monolog-bundle": "~3.1",
        "symfony/polyfill-apcu": "~1.7",
        "sensio/distribution-bundle": "~5.0",
        "sensio/framework-extra-bundle": "~5.1",
        "incenteev/composer-parameter-handler": "~2.1",
        "graylog2/gelf-php": "~1.5",
        "stof/doctrine-extensions-bundle": "~1.3",
        "gedmo/doctrine-extensions": "~2.4",
        "beberlei/DoctrineExtensions": "~1.0",
        "symfony/proxy-manager-bridge": "~3.4",
        "rollerworks/password-strength-bundle": "~2.0",
        "predis/predis":"^1.1.0",
        "snc/redis-bundle": "^2.0.0",
        "stfalcon/tinymce-bundle": "^2.2.0",
        "lexik/translation-bundle": "^4.0.10",
        "liip/imagine-bundle": "~1.9",
        "knplabs/gaufrette": "0.1.*",
        "suncat/mobile-detect-bundle":"~1.0",
        "api-platform/core": "~2.2",
        "dunglas/action-bundle": "~0.4",
        "nelmio/cors-bundle": "~1.5",
        "nelmio/api-doc-bundle": "~3.2",
        "phpdocumentor/reflection-docblock": "~3.3",
        "friendsofsymfony/oauth-server-bundle":"~1.5",
        "ocramius/proxy-manager": "~2.0",

The infinite loop is caused by PHPDumper, in addInlineReference.
A first lazy service A, requires in constructor a second service B who require the first service A too. (Yes it's ugly)

In 3.4.18, with lazy service, the DI is compiled, but not with 3.4.20.

It's probably caused by :
if ($id === $targetId) {
return $this->addInlineService($id, $definition, $definition);
}

in PHPDumper::addInlineReference (line 744). When I remove it, the DI is compiled, tests are green and website run.

(Edit: I'm embarrassed, I can not get performance issues anymore. So I delete message about them.)

@nicolas-grekas
Copy link
Member

@frenchcomp please open an issue with your findings/reproducer

@UBERPHP
Copy link

UBERPHP commented Jul 30, 2019

I hope this helps to understand where the cpu power is used on (bin/adminconsole cache:clear) :
sulu-minimal

(my local dev in windows, php 7.3, sulu-minimal/develop)

@nicolas-grekas
Copy link
Member

Please try again with 3.4@dev this might be fixed already. I can't spot anything from the callgraph screenshot. Please share a Blackfire profile next time as it's much more efficient for us to read, if the issue still exists (note that to me it's unrelated to original issue description anyway and that we might forget about comments on closed issues...)

@UBERPHP
Copy link

UBERPHP commented Jul 30, 2019

I was using xdebug, anyway I'm not able to reproduce it on php 5.6 because current sulu requirement is php 7.1+ and I'm not so much familiar with that. I think @alexander-schranz should respond for this issue and current situation.
As myself, I've just tested the latest 4.1, 4.2 and 4.3 versions of Symfony with php 7.3 and all looks good for me with cache:clear function, except already know thing - if platform is windows and using xdebug as module (even without triggering it) - it slows everything down >2x times or even x10 sometimes

@alexander-schranz
Copy link
Contributor Author

alexander-schranz commented Jul 30, 2019

@UBERPHP the issue should not longer exist as linked in here @nicolas-grekas did made a lot of improvements in #29369 ❤️. Just make sure you are not using one of the effected symfony versions (4.1.8, 3.4.19). And xdebug does slow down php processing and if your system is not very fast you should enable xdebug only when really needed.

@markomitranic
Copy link

My team is experiencing huge issues with container built times on Symfony 3.4.42. We are working heavily on performing the update to 4.4 but it is an interesting sight, and it would mean quite a lot if i could get @nicolas-grekas thoughts on this particular Blackfire profile. This is a cold start, a first pageload of an application without var/cache/*...

As you might imagine, 29 million method calls takes quite a lot of time, and prevents us from using xdebug at all (its not installed in the container that was used to make the abovementioned profile), or often makes blackfire probe unavailable because of timeouts. We do have 1.501 manually registered services, most of which use autowiring and autoconfiguration, and we do not let the app scan for services automagically.

Any kind of hint would help. <3

@nicolas-grekas
Copy link
Member

@markomitranic please open a separate issue, nothing wil happen on closed ones (the Blackfire profile is interesting).

@markomitranic
Copy link

@markomitranic please open a separate issue, nothing wil happen on closed ones (the Blackfire profile is interesting).

Yeah, i figured since this is more of an interesting support request, and related to this one, this was a better place. Sure, thanks for the response!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants