Я часто вижу сбой установки и удаления модуля с ошибкой
Uncaught PHP Exception RuntimeException: «Обнаружена рекурсивная перестройка маршрутизатора». в /path/to/drupal/web/core/lib/Drupal/Core/Routing/RouteBuilder.php строка 121
Похоже, основная проблема заключается в том, что что-то идет не так, и способ обработки ошибки пытается получить информацию о маршрутизаторе, которая уже изменяется.
Является ли тот факт, что он создает это фатальное исключение WSOD, основной ошибкой? Или это одна из тех вещей, когда они всегда перекладывают ответственность на то, что вызвало первоначальную ошибку? Есть ли хороший способ диагностировать эти проблемы?
Он оставляет модули наполовину установленными, например, с зарегистрированными типами сущностей, но без схемы. Это не здорово.
Пример ошибки:
Сайт обнаружил непредвиденную ошибку. Пожалуйста, повторите попытку позже.
RuntimeException: обнаружена рекурсивная перестройка маршрутизатора. в Drupal\Core\Routing\RouteBuilder->rebuild() (строка 121 файла core/lib/Drupal/Core/Routing/RouteBuilder.php).
Drupal\Core\ProxyClass\Routing\RouteBuilder->rebuild() (строка: 67)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRouteProvider() (строка: 104)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRoutesByPattern() (строка: 115)
Drupal\devel\EntityTypeInfo->getPathParts() (строка: 100)
Drupal\devel\EntityTypeInfo->setEntityTypeLinkTemplate() (строка: 75)
Drupal\devel\EntityTypeInfo->entityTypeAlter() (строка: 94)
devel_entity_type_alter() (строка: 539)
Drupal\Core\Extension\ModuleHandler->alter() (Строка: 334)
Drupal\Core\Plugin\DefaultPluginManager->alterDefinitions() (строка: 127)
Drupal\Core\Entity\EntityTypeManager->findDefinitions() (строка: 175)
Drupal\Core\Plugin\DefaultPluginManager->getDefinitions() (строка: 22)
Drupal\Core\Plugin\DefaultPluginManager->getDefinition() (строка: 136)
Drupal\Core\Entity\EntityTypeManager->getDefinition() (строка: 257)
Drupal\Core\Entity\EntityTypeManager->getHandler() (строка: 196)
Drupal\Core\Entity\EntityTypeManager->getStorage() (строка: 497)
Drupal\Core\Entity\EntityBase::loadMultiple() (строка: 19)
Drupal\ggroup\Routing\SubgroupRouteProvider->getRoutes()
call_user_func() (строка: 146)
Drupal\Core\Routing\RouteBuilder->rebuild() (строка: 83)
Drupal\Core\ProxyClass\Routing\RouteBuilder->rebuild() (строка: 67)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRouteProvider() (строка: 104)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRoutesByPattern() (строка: 115)
Drupal\devel\EntityTypeInfo->getPathParts() (строка: 100)
Drupal\devel\EntityTypeInfo->setEntityTypeLinkTemplate() (строка: 75)
Drupal\devel\EntityTypeInfo->entityTypeAlter() (строка: 94)
devel_entity_type_alter() (строка: 539)
Drupal\Core\Extension\ModuleHandler->alter() (Строка: 334)
Drupal\Core\Plugin\DefaultPluginManager->alterDefinitions() (строка: 127)
Drupal\Core\Entity\EntityTypeManager->findDefinitions() (строка: 175)
Drupal\Core\Plugin\DefaultPluginManager->getDefinitions() (строка: 22)
Drupal\Core\Plugin\DefaultPluginManager->getDefinition() (строка: 136)
Drupal\Core\Entity\EntityTypeManager->getDefinition() (строка: 257)
Drupal\Core\Entity\EntityTypeManager->getHandler() (строка: 196)
Drupal\Core\Entity\EntityTypeManager->getStorage() (строка: 247)
Drupal\views\EventSubscriber\ViewsEntitySchemaSubscriber->onEntityTypeDelete() (строка: 51)
Drupal\views\EventSubscriber\ViewsEntitySchemaSubscriber->onEntityTypeEvent()
call_user_func() (строка: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (строка: 145)
Drupal\Core\Entity\EntityTypeListener->onEntityTypeDelete() (Строка: 167)
Drupal\Core\Entity\EntityDefinitionUpdateManager->uninstallEntityType() (строка: 490)
Drupal\Core\Extension\ModuleInstaller->uninstall() (строка: 91)
Drupal\Core\ProxyClass\Extension\ModuleInstaller->uninstall() (строка: 174)
Drupal\system\Form\ModulesUninstallConfirmForm->submitForm()
call_user_func_array() (строка: 114)
Drupal\Core\Form\FormSubmitter->executeSubmitHandlers() (строка: 52)
Drupal\Core\Form\FormSubmitter->doSubmitForm() (строка: 592)
Drupal\Core\Form\FormBuilder->processForm() (строка: 320)
Drupal\Core\Form\FormBuilder->buildForm() (строка: 73)
Drupal\Core\Controller\FormController->getContentResult()
call_user_func_array() (строка: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (строка: 564)
Drupal\Core\Render\Renderer->executeInRenderContext() (строка: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext() (строка: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (строка: 158)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (строка: 80)
Symfony\Component\HttpKernel\HttpKernel->handle() (строка: 58)
Drupal\Core\StackMiddleware\Session->handle() (строка: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (строка: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (строка: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle() (строка: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (строка: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (строка: 23)
Stack\StackedHttpKernel->handle() (строка: 708)
Drupal\Core\DrupalKernel->handle() (строка: 19)