Merged.
Thanks a lot @protitude for helping fix this nasty bug!
Tests have been fixed.
But we are still missing that configuration option.
@protitude thanks for testing.
If it fixes the problem on your live site, I'll merge it.
This appears to be a rather complex problem to solve — if it’s even possible without causing performance degradation.
Let's see if someone comes up with a clever solution.
Unless new, valuable information is provided, this issue will be closed in 3 months.
Looks like it has been fixed in 3.x: ✨ Add referrerpolicy attribute Needs review .
@protitude could you give a try to this issue's MR please?
@protitude can you give us the cached routes for those 2 cids?
@protitude wondering how the routes can be varying per host? An idea?
Hi @protitude, thanks a lot for your investigation!
Not sure that code has been changed between beta 6 and 7.
I'll have a look a it.
Could you provide a full reproducible scenario from a fresh Drupal instance please?
@sneezycheesy could you provide a full reproducible scenario from a fresh Drupal instance?
I could help us investigate the problem and eventually reopen this issue if necessary.
I don't have time to test it right now either.
Let's wait for some RTBC love.
Hi @tuwedo, thanks for your interesting patch.
Could you move the code into its own submodule?
Something like views_filters_summary_autosubmit should be ok.
Hi @oscarfabian01, thanks for the patch! Could you create an MR please?
@lincoln-batsirayi could you provide a fully reproducible scenario for the issue?
The solution based on bundle-specific grant realms has been implemented in Domain 3.x.
@lincoln-batsirayi Could you give it a try and tell me if everything is ok for you?
The patch would probably be a BC breaking change, so we cannot merge it for now.
But the dependency has already been removed in 3.x.
I do not see any trivial solution for now.
It could be interesting to have something before the first 3.x beta release eventually if we need to introduce some BC breaking changes.
@dieterholvoet that Raven logger is causing a lot of circular dependency problems with many other modules.
Hi @catch, do you have any example of how it should be done?
I think it the best solution is to get rid of the event subscription and use a simple domain negotiation context service.
Will work on that.
Posting another stack trace I was getting where we can see the DomainConfigFactoryOverride looping on itself:
Symfony\\Component\\DependencyInjection\\Exception\\ServiceCircularReferenceException: Circular reference detected for service "domain.config_factory_override", path: "domain.config_factory_override". in /var/www/html/web/core/lib/Drupal/Component/DependencyInjection/Container.php on line 147 #0 /var/www/html/web/core/lib/Drupal/Component/DependencyInjection/Container.php(454): Drupal\\Component\\DependencyInjection\\Container->get('domain.config_f...', 1)\n#1 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(243): Drupal\\Component\\DependencyInjection\\Container->Drupal\\Component\\DependencyInjection\\{closure}()\n#2 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(206): Symfony\\Component\\EventDispatcher\\EventDispatcher::Symfony\\Component\\EventDispatcher\\{closure}(Object(Drupal\\domain\\DomainEvent), 'domain.active_d...', Object(Symfony\\Component\\EventDispatcher\\EventDispatcher))\n#3 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\\Component\\EventDispatcher\\EventDispatcher->callListeners(Array, 'domain.active_d...', Object(Drupal\\domain\\DomainEvent))\n#4 /var/www/html/web/modules/contrib/domain/domain/src/DomainNegotiator.php(121): Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch(Object(Drupal\\domain\\DomainEvent), 'domain.active_d...')\n#5 /var/www/html/web/modules/contrib/domain/domain/src/DomainNegotiator.php(101): Drupal\\domain\\DomainNegotiator->setActiveDomain(Object(Drupal\\domain\\Entity\\Domain))\n#6 /var/www/html/web/modules/contrib/domain/domain/src/DomainNegotiator.php(137): Drupal\\domain\\DomainNegotiator->setRequestDomain('local-drupal11....')\n#7 /var/www/html/web/modules/contrib/domain/domain/src/DomainNegotiator.php(151): Drupal\\domain\\DomainNegotiator->negotiateActiveDomain()\n#8 /var/www/html/web/modules/contrib/domain/domain/src/DomainNegotiator.php(167): Drupal\\domain\\DomainNegotiator->getActiveDomain()\n#9 /var/www/html/web/modules/contrib/domain_extras/domain_maintenance/src/Service/DomainMaintenanceMode.php(47): Drupal\\domain\\DomainNegotiator->getActiveId()\n#10 /var/www/html/web/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php(117): Drupal\\domain_maintenance\\Service\\DomainMaintenanceMode->applies(Object(Drupal\\Core\\Routing\\NullRouteMatch))\n#11 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(246): Drupal\\Core\\EventSubscriber\\MaintenanceModeSubscriber->onKernelRequestMaintenance(Object(Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent), 'kernel.exceptio...', Object(Symfony\\Component\\EventDispatcher\\EventDispatcher))\n#12 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(206): Symfony\\Component\\EventDispatcher\\EventDispatcher::Symfony\\Component\\EventDispatcher\\{closure}(Object(Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent), 'kernel.exceptio...', Object(Symfony\\Component\\EventDispatcher\\EventDispatcher))\n#13 /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php(56): Symfony\\Component\\EventDispatcher\\EventDispatcher->callListeners(Array, 'kernel.exceptio...', Object(Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent))\n#14 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(241): Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch(Object(Symfony\\Component\\HttpKernel\\Event\\ExceptionEvent), 'kernel.exceptio...')\n#15 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(91): Symfony\\Component\\HttpKernel\\HttpKernel->handleThrowable(Object(Error), Object(Symfony\\Component\\HttpFoundation\\Request), 1)\n#16 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/Session.php(53): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#17 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\\Core\\StackMiddleware\\Session->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#18 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/ContentLength.php(28): Drupal\\Core\\StackMiddleware\\KernelPreHandle->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#19 /var/www/html/web/core/modules/big_pipe/src/StackMiddleware/ContentLength.php(32): Drupal\\Core\\StackMiddleware\\ContentLength->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#20 /var/www/html/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(116): Drupal\\big_pipe\\StackMiddleware\\ContentLength->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#21 /var/www/html/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(90): Drupal\\page_cache\\StackMiddleware\\PageCache->pass(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#22 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\\page_cache\\StackMiddleware\\PageCache->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#23 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\\Core\\StackMiddleware\\ReverseProxyMiddleware->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#24 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/AjaxPageState.php(53): Drupal\\Core\\StackMiddleware\\NegotiationMiddleware->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#25 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\\Core\\StackMiddleware\\AjaxPageState->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#26 /var/www/html/web/core/lib/Drupal/Core/DrupalKernel.php(715): Drupal\\Core\\StackMiddleware\\StackedHttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#27 /var/www/html/web/index.php(19): Drupal\\Core\\DrupalKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))\n#28 {main}
@idebr it looks like autowiring might have introduced some circular dependency bugs.
Getting this:
Symfony\\Component\\DependencyInjection\\Exception\\ServiceCircularReferenceException: Circular reference detected for service "domain_config_ui.factory", path: "options_request_listener -> router.route_provider -> path_processor_manager -> path_processor_language -> domain_config_ui.factory -> domain.config_factory_override -> exception.fast_404_html". in /var/www/html/web/core/lib/Drupal/Component/DependencyInjection/Container.php on line 147
Investigating but still stuck for now on my dev instance...
Any help welcome :)
There is a problem with current implementation that causes some tests to fail.
As soon as a user has the permission to edit a specific content type on an assigned domain, it is allowed to edit any other content types.
@lincoln-batsirayi looks like some tests were failing as far as I understand it.
Could you create a new issue with an MR for the missing part?
Re-added the fixes in MR 76.
"Test only" job is now failing as expected.
Added a static cache in the OrphanPurger queue worker to ensure that we will not process already deleted entities.
mably → changed the visibility of the branch 3388540-purger-queue-cache to hidden.
I finally wrote two tests:
- The first one passes without the patch and demonstrates the need to manually run the purger batch multiple times, depending on the nesting level.
- The second one passes successfully with the patch applied and shows that a single cron run is sufficient to delete all orphaned revisions.
Hi @berdir, could you have a look at my test in MR 76?
Looks like I was able to reproduce the bug we are encountering when deleting nested revisions.
You can now exclude specific routes directly from the Domain Source settings page: