Recursion / Freeze on drush after update to 10.3, when role gets user.permission cacheability

Created on 23 June 2024, 5 days ago
Updated 27 June 2024, about 16 hours ago

Problem/Motivation

After update to 10.3, the site freezes on drush updb and drush cr.

Steps to reproduce

On a site with (amongst others) webform module installed, do

composer update "drupal/core-*" --with-all-dependencies
# Same with drush cr
drush updb

Some wiltd debugging shows that a permission check in a fat constructor leads to a call recursion of:
- AccessPolicyProcessor->processAccessPolicies()
- VariationCache->set()
- VariationCache->createCacheId()
- CacheContextsManager->convertTokensToKeys()
- CacheContextsManager->optimizeTokens()
- AccountPermissionsCacheContext->getCacheableMetadata()
- PermissionsHashGenerator->getCacheableMetadata()
- AccessPolicyProcessor->processAccessPolicies()

For detailed backtrace see comments. Note that some webform service triggered that instance of a bug, but as the backtrace indicates, ANY fat constructor doing a permission check can trigger this.

Proposed resolution

?

Remaining tasks

?

User interface changes

API changes

Data model changes

Release notes snippet

πŸ› Bug report
Status

Closed: works as designed

Version

10.3 ✨

Component
User systemΒ  β†’

Last updated about 16 hours ago

Created by

πŸ‡©πŸ‡ͺGermany geek-merlin Freiburg, Germany

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @geek-merlin
  • πŸ‡©πŸ‡ͺGermany geek-merlin Freiburg, Germany

    After hunting down the recursion set a trap:

      // \Drupal\Core\Cache\Context\CacheContextsManager::convertTokensToKeys
      public function convertTokensToKeys(array $context_tokens) {
        static $i=0;
        $i++;
        if ($i > 10) {
          dd((new \Exception())->getTraceAsString());
        }
    

    Yielding:

    $ drush -vvv updb
     [preflight] Config paths: vendor/drush/drush/drush.yml,drush/drush.yml
     [preflight] Alias paths: web/drush/sites,drush/sites
     [preflight] Commandfile search paths: vendor/drush/drush/src,drush
     [info] Starting bootstrap to full [0.73 sec, 10.74 MB]
     [info] Drush bootstrap phase 5 [0.73 sec, 10.74 MB]
     [info] Try to validate bootstrap phase 5 [0.73 sec, 10.75 MB]
     [info] Try to validate bootstrap phase 5 [0.73 sec, 10.75 MB]
     [info] Try to bootstrap at phase 5 [0.73 sec, 10.75 MB]
     [info] Drush bootstrap phase: bootstrapDrupalRoot() [0.73 sec, 10.75 MB]
     [info] Change working directory to web [0.73 sec, 10.75 MB]
     [info] Initialized Drupal 10.3.0 root directory at web [0.73 sec, 10.85 MB]
     [info] Try to validate bootstrap phase 5 [0.73 sec, 10.85 MB]
     [info] Try to bootstrap at phase 5 [0.74 sec, 11.31 MB]
     [info] Drush bootstrap phase: bootstrapDrupalSite() [0.74 sec, 11.31 MB]
     [debug] Could not find a Drush config file at sites/default/drush.yml. [0.74 sec, 11.49 MB]
     [info] Initialized Drupal site localhost:9999 at sites/default [0.74 sec, 11.49 MB]
     [info] Try to validate bootstrap phase 5 [0.74 sec, 11.49 MB]
     [info] Try to bootstrap at phase 5 [0.74 sec, 11.49 MB]
     [info] Drush bootstrap phase: bootstrapDrupalConfiguration() [0.74 sec, 11.49 MB]
     [info] Try to validate bootstrap phase 5 [0.74 sec, 11.69 MB]
     [info] Try to bootstrap at phase 5 [0.76 sec, 12.96 MB]
     [info] Drush bootstrap phase: bootstrapDrupalDatabase() [0.76 sec, 12.96 MB]
     [info] Successfully connected to the Drupal database. [0.76 sec, 12.96 MB]
     [info] Try to validate bootstrap phase 5 [0.76 sec, 12.96 MB]
     [info] Try to bootstrap at phase 5 [0.76 sec, 12.96 MB]
     [info] Drush bootstrap phase: bootstrapDrupalFull() [0.76 sec, 12.96 MB]
     [debug] Start bootstrap of the Drupal Kernel. [0.76 sec, 12.96 MB]
     [debug] Get container builder [0.85 sec, 15.38 MB]
     [debug] Finished bootstrap of the Drupal Kernel. [1.23 sec, 43.42 MB]
     [debug] Loading drupal module drush commands & etc. [1.23 sec, 43.42 MB]
     [debug] Found drush.services.yml for token Drush commands [1.23 sec, 43.59 MB]
     [debug] Found drush.services.yml for webform Drush commands [1.23 sec, 43.59 MB]
    """
    #0 web/core/lib/Drupal/Core/Cache/VariationCache.php(242): Drupal\Core\Cache\Context\CacheContextsManager->convertTokensToKeys()\n
    #1 web/core/lib/Drupal/Core/Cache/VariationCache.php(173): Drupal\Core\Cache\VariationCache->createCacheIdFast()\n
    #2 web/core/lib/Drupal/Core/Cache/VariationCache.php(35): Drupal\Core\Cache\VariationCache->getRedirectChain()\n
    #3 web/core/lib/Drupal/Core/Session/AccessPolicyProcessor.php(85): Drupal\Core\Cache\VariationCache->get()\n
    #4 web/core/lib/Drupal/Core/Session/PermissionsHashGenerator.php(126): Drupal\Core\Session\AccessPolicyProcessor->processAccessPolicies()\n
    #5 web/core/lib/Drupal/Core/Cache/Context/AccountPermissionsCacheContext.php(53): Drupal\Core\Session\PermissionsHashGenerator->getCacheableMetadata()\n
    #6 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(189): Drupal\Core\Cache\Context\AccountPermissionsCacheContext->getCacheableMetadata()\n
    #7 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(115): Drupal\Core\Cache\Context\CacheContextsManager->optimizeTokens()\n
    #8 web/core/lib/Drupal/Core/Cache/VariationCache.php(219): Drupal\Core\Cache\Context\CacheContextsManager->convertTokensToKeys()\n
    #9 web/core/lib/Drupal/Core/Cache/VariationCache.php(57): Drupal\Core\Cache\VariationCache->createCacheId()\n
    #10 web/core/lib/Drupal/Core/Session/AccessPolicyProcessor.php(137): Drupal\Core\Cache\VariationCache->set()\n
    #11 web/core/lib/Drupal/Core/Session/PermissionsHashGenerator.php(126): Drupal\Core\Session\AccessPolicyProcessor->processAccessPolicies()\n
    #12 web/core/lib/Drupal/Core/Cache/Context/AccountPermissionsCacheContext.php(53): Drupal\Core\Session\PermissionsHashGenerator->getCacheableMetadata()\n
    #13 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(189): Drupal\Core\Cache\Context\AccountPermissionsCacheContext->getCacheableMetadata()\n
    #14 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(115): Drupal\Core\Cache\Context\CacheContextsManager->optimizeTokens()\n
    #15 web/core/lib/Drupal/Core/Cache/VariationCache.php(219): Drupal\Core\Cache\Context\CacheContextsManager->convertTokensToKeys()\n
    #16 web/core/lib/Drupal/Core/Cache/VariationCache.php(57): Drupal\Core\Cache\VariationCache->createCacheId()\n
    #17 web/core/lib/Drupal/Core/Session/AccessPolicyProcessor.php(137): Drupal\Core\Cache\VariationCache->set()\n
    #18 web/core/lib/Drupal/Core/Session/PermissionsHashGenerator.php(126): Drupal\Core\Session\AccessPolicyProcessor->processAccessPolicies()\n
    #19 web/core/lib/Drupal/Core/Cache/Context/AccountPermissionsCacheContext.php(53): Drupal\Core\Session\PermissionsHashGenerator->getCacheableMetadata()\n
    #20 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(189): Drupal\Core\Cache\Context\AccountPermissionsCacheContext->getCacheableMetadata()\n
    #21 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(115): Drupal\Core\Cache\Context\CacheContextsManager->optimizeTokens()\n
    #22 web/core/lib/Drupal/Core/Cache/VariationCache.php(219): Drupal\Core\Cache\Context\CacheContextsManager->convertTokensToKeys()\n
    #23 web/core/lib/Drupal/Core/Cache/VariationCache.php(57): Drupal\Core\Cache\VariationCache->createCacheId()\n
    #24 web/core/lib/Drupal/Core/Session/AccessPolicyProcessor.php(137): Drupal\Core\Cache\VariationCache->set()\n
    #25 web/core/lib/Drupal/Core/Session/PermissionChecker.php(23): Drupal\Core\Session\AccessPolicyProcessor->processAccessPolicies()\n
    #26 web/core/lib/Drupal/Core/Session/UserSession.php(129): Drupal\Core\Session\PermissionChecker->hasPermission()\n
    #27 web/core/lib/Drupal/Core/Session/AccountProxy.php(121): Drupal\Core\Session\UserSession->hasPermission()\n
    #28 web/modules/contrib/webform/src/WebformHelpManager.php(1555): Drupal\Core\Session\AccountProxy->hasPermission()\n
    #29 web/modules/contrib/webform/src/WebformHelpManager.php(146): Drupal\webform\WebformHelpManager->initHelp()\n
    #30 [internal function]: Drupal\webform\WebformHelpManager->__construct()\n
    
    
    #31 vendor/symfony/dependency-injection/ContainerBuilder.php(1140): ReflectionClass->newInstanceArgs()\n
    #32 vendor/symfony/dependency-injection/ContainerBuilder.php(586): Symfony\Component\DependencyInjection\ContainerBuilder->createService()\n
    #33 vendor/symfony/dependency-injection/ContainerBuilder.php(531): Symfony\Component\DependencyInjection\ContainerBuilder->doGet()\n
    #34 vendor/drush/drush/src/Runtime/LegacyServiceInstantiator.php(288): Symfony\Component\DependencyInjection\ContainerBuilder->get()\n
    #35 vendor/drush/drush/src/Runtime/LegacyServiceInstantiator.php(253): Drush\Runtime\LegacyServiceInstantiator->resolveFromContainer()\n
    #36 [internal function]: Drush\Runtime\LegacyServiceInstantiator->resolveArgument()\n
    #37 vendor/drush/drush/src/Runtime/LegacyServiceInstantiator.php(223): array_map()\n
    #38 vendor/drush/drush/src/Runtime/LegacyServiceInstantiator.php(193): Drush\Runtime\LegacyServiceInstantiator->resolveArguments()\n
    #39 vendor/drush/drush/src/Runtime/LegacyServiceInstantiator.php(174): Drush\Runtime\LegacyServiceInstantiator->instantiateObject()\n
    #40 vendor/drush/drush/src/Runtime/LegacyServiceInstantiator.php(131): Drush\Runtime\LegacyServiceInstantiator->create()\n
    #41 vendor/drush/drush/src/Runtime/LegacyServiceInstantiator.php(60): Drush\Runtime\LegacyServiceInstantiator->instantiateServices()\n
    #42 vendor/drush/drush/src/Boot/DrupalBoot8.php(257): Drush\Runtime\LegacyServiceInstantiator->loadServiceFiles()\n
    #43 vendor/drush/drush/src/Boot/DrupalBoot8.php(233): Drush\Boot\DrupalBoot8->addDrupalModuleDrushCommands()\n
    #44 vendor/drush/drush/src/Boot/BootstrapManager.php(236): Drush\Boot\DrupalBoot8->bootstrapDrupalFull()\n
    #45 vendor/drush/drush/src/Boot/BootstrapManager.php(377): Drush\Boot\BootstrapManager->doBootstrap()\n
    #46 vendor/drush/drush/src/Boot/BootstrapManager.php(329): Drush\Boot\BootstrapManager->bootstrapToPhaseIndex()\n
    #47 vendor/drush/drush/src/Boot/BootstrapHook.php(36): Drush\Boot\BootstrapManager->bootstrapToPhase()\n
    #48 vendor/consolidation/annotated-command/src/Hooks/Dispatchers/InitializeHookDispatcher.php(44): Drush\Boot\BootstrapHook->initialize()\n
    #49 vendor/consolidation/annotated-command/src/Hooks/Dispatchers/InitializeHookDispatcher.php(36): Consolidation\AnnotatedCommand\Hooks\Dispatchers\InitializeHookDispatcher->doInitializeHook()\n
    #50 vendor/consolidation/annotated-command/src/Hooks/Dispatchers/InitializeHookDispatcher.php(29): Consolidation\AnnotatedCommand\Hooks\Dispatchers\InitializeHookDispatcher->callInitializeHook()\n
    #51 vendor/consolidation/annotated-command/src/CommandProcessor.php(145): Consolidation\AnnotatedCommand\Hooks\Dispatchers\InitializeHookDispatcher->initialize()\n
    #52 vendor/consolidation/annotated-command/src/AnnotatedCommand.php(376): Consolidation\AnnotatedCommand\CommandProcessor->initializeHook()\n
    #53 vendor/symfony/console/Command/Command.php(292): Consolidation\AnnotatedCommand\AnnotatedCommand->initialize()\n
    #54 vendor/symfony/console/Application.php(1096): Symfony\Component\Console\Command\Command->run()\n
    #55 vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand()\n
    #56 vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun()\n
    #57 vendor/drush/drush/src/Runtime/Runtime.php(110): Symfony\Component\Console\Application->run()\n
    #58 vendor/drush/drush/src/Runtime/Runtime.php(40): Drush\Runtime\Runtime->doRun()\n
    #59 vendor/drush/drush/drush.php(139): Drush\Runtime\Runtime->run()\n
    #60 vendor/drush/drush/drush(4): require('...')\n
    #61 vendor/bin/drush(119): include('...')\n
    #62 {main}
    """
    
  • πŸ‡©πŸ‡ͺGermany geek-merlin Freiburg, Germany
  • πŸ‡©πŸ‡ͺGermany geek-merlin Freiburg, Germany

    Pathauto triggers the same bug:

    $ drush -vvv updb
     [preflight] Config paths: vendor/drush/drush/drush.yml,drush/drush.yml
     [preflight] Alias paths: web/drush/sites,drush/sites
     [preflight] Commandfile search paths: vendor/drush/drush/src,drush
     [info] Starting bootstrap to full [0.53 sec, 10.74 MB]
     [info] Drush bootstrap phase 5 [0.53 sec, 10.74 MB]
     [info] Try to validate bootstrap phase 5 [0.53 sec, 10.74 MB]
     [info] Try to validate bootstrap phase 5 [0.53 sec, 10.75 MB]
     [info] Try to bootstrap at phase 5 [0.53 sec, 10.75 MB]
     [info] Drush bootstrap phase: bootstrapDrupalRoot() [0.53 sec, 10.75 MB]
     [info] Change working directory to web [0.53 sec, 10.75 MB]
     [info] Initialized Drupal 10.3.0 root directory at web [0.53 sec, 10.85 MB]
     [info] Try to validate bootstrap phase 5 [0.53 sec, 10.85 MB]
     [info] Try to bootstrap at phase 5 [0.55 sec, 11.31 MB]
     [info] Drush bootstrap phase: bootstrapDrupalSite() [0.55 sec, 11.31 MB]
     [debug] Could not find a Drush config file at sites/default/drush.yml. [0.56 sec, 11.49 MB]
     [info] Initialized Drupal site localhost:9999 at sites/default [0.56 sec, 11.49 MB]
     [info] Try to validate bootstrap phase 5 [0.56 sec, 11.49 MB]
     [info] Try to bootstrap at phase 5 [0.56 sec, 11.49 MB]
     [info] Drush bootstrap phase: bootstrapDrupalConfiguration() [0.56 sec, 11.49 MB]
     [info] Try to validate bootstrap phase 5 [0.6 sec, 11.69 MB]
     [info] Try to bootstrap at phase 5 [0.66 sec, 12.96 MB]
     [info] Drush bootstrap phase: bootstrapDrupalDatabase() [0.66 sec, 12.96 MB]
     [info] Successfully connected to the Drupal database. [0.66 sec, 12.96 MB]
     [info] Try to validate bootstrap phase 5 [0.66 sec, 12.96 MB]
     [info] Try to bootstrap at phase 5 [0.66 sec, 12.96 MB]
     [info] Drush bootstrap phase: bootstrapDrupalFull() [0.66 sec, 12.96 MB]
     [debug] Start bootstrap of the Drupal Kernel. [0.66 sec, 12.96 MB]
     [debug] Get container builder [0.93 sec, 15.38 MB]
     [debug] Finished bootstrap of the Drupal Kernel. [2.05 sec, 43.42 MB]
     [debug] Loading drupal module drush commands & etc. [2.05 sec, 43.42 MB]
     [debug] Found drush.services.yml for token Drush commands [2.07 sec, 43.59 MB]
     [debug] Found drush.services.yml for webform Drush commands [2.08 sec, 43.59 MB]
     [debug] Add a commandfile class: Drush\Drupal\Commands\sql\SanitizeCommands [3.35 sec, 60.96 MB]
     [debug] Add a commandfile class: Drush\Drupal\Commands\sql\SanitizeCommentsCommands [3.35 sec, 60.97 MB]
     [debug] Add a commandfile class: Drush\Drupal\Commands\sql\SanitizeSessionsCommands [3.35 sec, 60.97 MB]
     [debug] Add a commandfile class: Drush\Drupal\Commands\sql\SanitizeUserFieldsCommands [3.35 sec, 60.97 MB]
     [debug] Add a commandfile class: Drush\Drupal\Commands\sql\SanitizeUserTableCommands [3.36 sec, 60.98 MB]
     [debug] Add a commandfile class: Drupal\config_actions\Commands\ConfigActionsCommands [3.36 sec, 60.98 MB]
     [debug] Add a commandfile class: Drupal\default_content\Commands\DefaultContentCommands [3.36 sec, 60.99 MB]
     [debug] Add a commandfile class: Drupal\entity_reference_revisions\Commands\EntityReferenceRevisionsCommands [3.37 sec, 61 MB]
     [debug] Add a commandfile class: Drupal\l10n_tools\Commands\L10nToolsCommands [3.39 sec, 61 MB]
     [debug] Add a commandfile class: Drupal\smart_date\Commands\SmartDateDrushCommands [3.39 sec, 61.01 MB]
     [debug] Add a commandfile class: Drupal\symfony_mailer\Commands\MailerCommands [3.39 sec, 61.02 MB]
     [debug] Add a commandfile class: Drupal\token\Commands\TokenCommands [3.39 sec, 61.02 MB]
     [debug] Add a commandfile class: Drupal\webform\Commands\WebformSubmissionCommands [3.4 sec, 61.02 MB]
     [debug] Add a commandfile class: Drupal\webform\Commands\WebformLibrariesCommands [3.4 sec, 61.06 MB]
     [debug] Add a commandfile class: Drupal\webform\Commands\WebformUtilityCommands [3.41 sec, 61.07 MB]
     [debug] Add a commandfile class: Drupal\webform\Commands\WebformDevelCommands [3.41 sec, 61.08 MB]
     [debug] Add a commandfile class: Drupal\webform\Commands\WebformSanitizeSubmissionsCommands [3.41 sec, 61.09 MB]
     [debug] Add a commandfile class: Drupal\pathauto\Commands\PathautoCommands [3.41 sec, 61.09 MB]
    """
    #0 web/core/lib/Drupal/Core/Cache/VariationCache.php(242): Drupal\Core\Cache\Context\CacheContextsManager->convertTokensToKeys()\n
    #1 web/core/lib/Drupal/Core/Cache/VariationCache.php(173): Drupal\Core\Cache\VariationCache->createCacheIdFast()\n
    #2 web/core/lib/Drupal/Core/Cache/VariationCache.php(35): Drupal\Core\Cache\VariationCache->getRedirectChain()\n
    #3 web/core/lib/Drupal/Core/Session/AccessPolicyProcessor.php(85): Drupal\Core\Cache\VariationCache->get()\n
    #4 web/core/lib/Drupal/Core/Session/PermissionsHashGenerator.php(126): Drupal\Core\Session\AccessPolicyProcessor->processAccessPolicies()\n
    #5 web/core/lib/Drupal/Core/Cache/Context/AccountPermissionsCacheContext.php(53): Drupal\Core\Session\PermissionsHashGenerator->getCacheableMetadata()\n
    #6 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(189): Drupal\Core\Cache\Context\AccountPermissionsCacheContext->getCacheableMetadata()\n
    #7 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(115): Drupal\Core\Cache\Context\CacheContextsManager->optimizeTokens()\n
    #8 web/core/lib/Drupal/Core/Cache/VariationCache.php(219): Drupal\Core\Cache\Context\CacheContextsManager->convertTokensToKeys()\n
    #9 web/core/lib/Drupal/Core/Cache/VariationCache.php(57): Drupal\Core\Cache\VariationCache->createCacheId()\n
    #10 web/core/lib/Drupal/Core/Session/AccessPolicyProcessor.php(137): Drupal\Core\Cache\VariationCache->set()\n
    #11 web/core/lib/Drupal/Core/Session/PermissionsHashGenerator.php(126): Drupal\Core\Session\AccessPolicyProcessor->processAccessPolicies()\n
    #12 web/core/lib/Drupal/Core/Cache/Context/AccountPermissionsCacheContext.php(53): Drupal\Core\Session\PermissionsHashGenerator->getCacheableMetadata()\n
    #13 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(189): Drupal\Core\Cache\Context\AccountPermissionsCacheContext->getCacheableMetadata()\n
    #14 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(115): Drupal\Core\Cache\Context\CacheContextsManager->optimizeTokens()\n
    #15 web/core/lib/Drupal/Core/Cache/VariationCache.php(219): Drupal\Core\Cache\Context\CacheContextsManager->convertTokensToKeys()\n
    #16 web/core/lib/Drupal/Core/Cache/VariationCache.php(57): Drupal\Core\Cache\VariationCache->createCacheId()\n
    #17 web/core/lib/Drupal/Core/Session/AccessPolicyProcessor.php(137): Drupal\Core\Cache\VariationCache->set()\n
    #18 web/core/lib/Drupal/Core/Session/PermissionsHashGenerator.php(126): Drupal\Core\Session\AccessPolicyProcessor->processAccessPolicies()\n
    #19 web/core/lib/Drupal/Core/Cache/Context/AccountPermissionsCacheContext.php(53): Drupal\Core\Session\PermissionsHashGenerator->getCacheableMetadata()\n
    #20 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(189): Drupal\Core\Cache\Context\AccountPermissionsCacheContext->getCacheableMetadata()\n
    #21 web/core/lib/Drupal/Core/Cache/Context/CacheContextsManager.php(115): Drupal\Core\Cache\Context\CacheContextsManager->optimizeTokens()\n
    #22 web/core/lib/Drupal/Core/Cache/VariationCache.php(219): Drupal\Core\Cache\Context\CacheContextsManager->convertTokensToKeys()\n
    #23 web/core/lib/Drupal/Core/Cache/VariationCache.php(57): Drupal\Core\Cache\VariationCache->createCacheId()\n
    #24 web/core/lib/Drupal/Core/Session/AccessPolicyProcessor.php(137): Drupal\Core\Cache\VariationCache->set()\n
    #25 web/core/lib/Drupal/Core/Session/PermissionChecker.php(23): Drupal\Core\Session\AccessPolicyProcessor->processAccessPolicies()\n
    #26 web/core/lib/Drupal/Core/Session/UserSession.php(129): Drupal\Core\Session\PermissionChecker->hasPermission()\n
    #27 web/core/lib/Drupal/Core/Session/AccountProxy.php(121): Drupal\Core\Session\UserSession->hasPermission()\n
    #28 web/core/modules/user/src/Plugin/LanguageNegotiation/LanguageNegotiationUserAdmin.php(106): Drupal\Core\Session\AccountProxy->hasPermission()\n
    
    
    #29 web/core/modules/language/src/LanguageNegotiator.php(197): Drupal\user\Plugin\LanguageNegotiation\LanguageNegotiationUserAdmin->getLangcode()\n
    #30 web/core/modules/language/src/LanguageNegotiator.php(137): Drupal\language\LanguageNegotiator->negotiateLanguage()\n
    #31 web/core/modules/language/src/ConfigurableLanguageManager.php(218): Drupal\language\LanguageNegotiator->initializeType()\n
    #32 web/core/lib/Drupal/Core/Menu/LocalActionManager.php(141): Drupal\language\ConfigurableLanguageManager->getCurrentLanguage()\n
    #33 [internal function]: Drupal\Core\Menu\LocalActionManager->__construct()\n
    
    
    #34 vendor/symfony/dependency-injection/ContainerBuilder.php(1140): ReflectionClass->newInstanceArgs()\n
    #35 vendor/symfony/dependency-injection/ContainerBuilder.php(586): Symfony\Component\DependencyInjection\ContainerBuilder->createService()\n
    #36 vendor/symfony/dependency-injection/ContainerBuilder.php(1258): Symfony\Component\DependencyInjection\ContainerBuilder->doGet()\n
    #37 vendor/symfony/dependency-injection/ContainerBuilder.php(1210): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices()\n
    #38 vendor/symfony/dependency-injection/ContainerBuilder.php(1673): Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices()\n
    #39 vendor/symfony/dependency-injection/ContainerBuilder.php(1166): Symfony\Component\DependencyInjection\ContainerBuilder->callMethod()\n
    #40 vendor/symfony/dependency-injection/ContainerBuilder.php(586): Symfony\Component\DependencyInjection\ContainerBuilder->createService()\n
    #41 vendor/symfony/dependency-injection/ContainerBuilder.php(531): Symfony\Component\DependencyInjection\ContainerBuilder->doGet()\n
    #42 vendor/drush/drush/src/Commands/core/CacheCommands.php(62): Symfony\Component\DependencyInjection\ContainerBuilder->get()\n
    #43 vendor/drush/drush/src/Runtime/ServiceManager.php(329): Drush\Commands\core\CacheCommands::create()\n
    
    
    #44 vendor/drush/drush/src/Boot/DrupalBoot8.php(305): Drush\Runtime\ServiceManager->instantiateServices()\n
    #45 vendor/drush/drush/src/Boot/DrupalBoot8.php(233): Drush\Boot\DrupalBoot8->addDrupalModuleDrushCommands()\n
    #46 vendor/drush/drush/src/Boot/BootstrapManager.php(236): Drush\Boot\DrupalBoot8->bootstrapDrupalFull()\n
    #47 vendor/drush/drush/src/Boot/BootstrapManager.php(377): Drush\Boot\BootstrapManager->doBootstrap()\n
    #48 vendor/drush/drush/src/Boot/BootstrapManager.php(329): Drush\Boot\BootstrapManager->bootstrapToPhaseIndex()\n
    #49 vendor/drush/drush/src/Boot/BootstrapHook.php(36): Drush\Boot\BootstrapManager->bootstrapToPhase()\n
    #50 vendor/consolidation/annotated-command/src/Hooks/Dispatchers/InitializeHookDispatcher.php(44): Drush\Boot\BootstrapHook->initialize()\n
    #51 vendor/consolidation/annotated-command/src/Hooks/Dispatchers/InitializeHookDispatcher.php(36): Consolidation\AnnotatedCommand\Hooks\Dispatchers\InitializeHookDispatcher->doInitializeHook()\n
    #52 vendor/consolidation/annotated-command/src/Hooks/Dispatchers/InitializeHookDispatcher.php(29): Consolidation\AnnotatedCommand\Hooks\Dispatchers\InitializeHookDispatcher->callInitializeHook()\n
    #53 vendor/consolidation/annotated-command/src/CommandProcessor.php(145): Consolidation\AnnotatedCommand\Hooks\Dispatchers\InitializeHookDispatcher->initialize()\n
    #54 vendor/consolidation/annotated-command/src/AnnotatedCommand.php(376): Consolidation\AnnotatedCommand\CommandProcessor->initializeHook()\n
    #55 vendor/symfony/console/Command/Command.php(292): Consolidation\AnnotatedCommand\AnnotatedCommand->initialize()\n
    #56 vendor/symfony/console/Application.php(1096): Symfony\Component\Console\Command\Command->run()\n
    #57 vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand()\n
    #58 vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun()\n
    #59 vendor/drush/drush/src/Runtime/Runtime.php(110): Symfony\Component\Console\Application->run()\n
    #60 vendor/drush/drush/src/Runtime/Runtime.php(40): Drush\Runtime\Runtime->doRun()\n
    #61 vendor/drush/drush/drush.php(139): Drush\Runtime\Runtime->run()\n
    #62 vendor/drush/drush/drush(4): require('...')\n
    #63 vendor/bin/drush(119): include('...')\n
    #64 {main}
    """
    
    
  • πŸ‡©πŸ‡ͺGermany geek-merlin Freiburg, Germany

    Tried to workaround by deleting mentioned drush.services.yml.
    Also token and symfony_mailer trigger this.

  • Status changed to Postponed: needs info 5 days ago
  • πŸ‡©πŸ‡ͺGermany geek-merlin Freiburg, Germany

    I can NOT reproduce this with core and webform alone.

    Investigating.

  • Status changed to Closed: works as designed about 16 hours ago
  • πŸ‡©πŸ‡ͺGermany geek-merlin Freiburg, Germany

    Woohoo, i found it.

    FTR: One module (in my case ErrorLevelPermission, which myself created a long time ago) erroneously added a user.permission cache context on (any config and thus also) user.role.*. Fixed in the current 1.4 release of ErrorLevelPermission.

    This might happen with other contrib or custom modules in the future, so documenting for now.

    Maybe the core code may need some robustification, but let's see if this happens again.

    Closing for now.

Production build 0.69.0 2024