Puncte:0

Cum să faci față „Reconstrucția routerului recursiv detectată”. eroare de excepție

drapel ke

Văd frecvent că instalarea și dezinstalarea modulelor eșuează cu eroarea

Excepție PHP neprinsă RuntimeException: „S-a detectat reconstrucția routerului recursiv”. la /path/to/drupal/web/core/lib/Drupal/Core/Routing/RouteBuilder.php linia 121

Se pare că problema de bază este că ceva nu merge bine, iar modul în care este tratată eroarea încearcă să obțină informații despre router care sunt deja modificate.

Faptul că produce această excepție fatală WSOD este o eroare de bază? Sau acesta este unul dintre acele lucruri în care ei vor transfera întotdeauna responsabilitatea oricărei persoane care cauzează eroarea inițială? Există o modalitate bună de a diagnostica aceste probleme?

Lasă modulele pe jumătate instalate, ca și în cazul tipurilor de entități înregistrate, dar fără schemă. Nu e grozav.

Un exemplu de eroare:

Site-ul web a întâmpinat o eroare neașteptată. Vă rugăm să încercați din nou mai târziu.

RuntimeException: Reconstrucție recurstivă a routerului a fost detectată. în Drupal\Core\Routing\RouteBuilder->rebuild() (linia 121 din core/lib/Drupal/Core/Routing/RouteBuilder.php).
Drupal\Core\ProxyClass\Routing\RouteBuilder->rebuild() (linia: 67)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRouteProvider() (linia: 104)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRoutesByPattern() (linia: 115)
Drupal\devel\EntityTypeInfo->getPathParts() (linia: 100)
Drupal\devel\EntityTypeInfo->setEntityTypeLinkTemplate() (linia: 75)
Drupal\devel\EntityTypeInfo->entityTypeAlter() (linia: 94)
devel_entity_type_alter() (linia: 539)
Drupal\Core\Extension\ModuleHandler->alter() (linia: 334)
Drupal\Core\Plugin\DefaultPluginManager->alterDefinitions() (linia: 127)
Drupal\Core\Entity\EntityTypeManager->findDefinitions() (linia: 175)
Drupal\Core\Plugin\DefaultPluginManager->getDefinitions() (linia: 22)
Drupal\Core\Plugin\DefaultPluginManager->getDefinition() (linia: 136)
Drupal\Core\Entity\EntityTypeManager->getDefinition() (linia: 257)
Drupal\Core\Entity\EntityTypeManager->getHandler() (linia: 196)
Drupal\Core\Entity\EntityTypeManager->getStorage() (linia: 497)
Drupal\Core\Entity\EntityBase::loadMultiple() (linia: 19)
Drupal\ggroup\Routing\SubgroupRouteProvider->getRoutes()
call_user_func() (linia: 146)
Drupal\Core\Routing\RouteBuilder->rebuild() (linia: 83)
Drupal\Core\ProxyClass\Routing\RouteBuilder->rebuild() (linia: 67)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRouteProvider() (linia: 104)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRoutesByPattern() (linia: 115)
Drupal\devel\EntityTypeInfo->getPathParts() (linia: 100)
Drupal\devel\EntityTypeInfo->setEntityTypeLinkTemplate() (linia: 75)
Drupal\devel\EntityTypeInfo->entityTypeAlter() (linia: 94)
devel_entity_type_alter() (linia: 539)
Drupal\Core\Extension\ModuleHandler->alter() (linia: 334)
Drupal\Core\Plugin\DefaultPluginManager->alterDefinitions() (linia: 127)
Drupal\Core\Entity\EntityTypeManager->findDefinitions() (linia: 175)
Drupal\Core\Plugin\DefaultPluginManager->getDefinitions() (linia: 22)
Drupal\Core\Plugin\DefaultPluginManager->getDefinition() (linia: 136)
Drupal\Core\Entity\EntityTypeManager->getDefinition() (linia: 257)
Drupal\Core\Entity\EntityTypeManager->getHandler() (linia: 196)
Drupal\Core\Entity\EntityTypeManager->getStorage() (linia: 247)
Drupal\views\EventSubscriber\ViewsEntitySchemaSubscriber->onEntityTypeDelete() (linia: 51)
Drupal\views\EventSubscriber\ViewsEntitySchemaSubscriber->onEntityTypeEvent()
call_user_func() (linia: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (linia: 145)
Drupal\Core\Entity\EntityTypeListener->onEntityTypeDelete() (linia: 167)
Drupal\Core\Entity\EntityDefinitionUpdateManager->uninstallEntityType() (linia: 490)
Drupal\Core\Extension\ModuleInstaller->uninstall() (linia: 91)
Drupal\Core\ProxyClass\Extension\ModuleInstaller->uninstall() (linia: 174)
Drupal\system\Form\ModulesUninstallConfirmForm->submitForm()
call_user_func_array() (linia: 114)
Drupal\Core\Form\FormSubmitter->executeSubmitHandlers() (linia: 52)
Drupal\Core\Form\FormSubmitter->doSubmitForm() (linia: 592)
Drupal\Core\Form\FormBuilder->processForm() (linia: 320)
Drupal\Core\Form\FormBuilder->buildForm() (linia: 73)
Drupal\Core\Controller\FormController->getContentResult()
call_user_func_array() (linia: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Linie: 564)
Drupal\Core\Render\Renderer->executeInRenderContext() (linia: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext() (linia: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Linia: 158)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (linia: 80)
Symfony\Component\HttpKernel\HttpKernel->handle() (linia: 58)
Drupal\Core\StackMiddleware\Session->handle() (linia: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (linia: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (linia: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle() (linia: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (linia: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (linia: 23)
Stack\StackedHttpKernel->handle() (linia: 708)
Drupal\Core\DrupalKernel->handle() (linia: 19)
4uk4 avatar
drapel cn
Puteți posta un mesaj de eroare complet cu o urmărire a stivei?
drapel ke
Puteți vedea erori precum [#2351353](https://www.drupal.org/project/drupal/issues/2351353) și [#2930715](https://www.drupal.org/project/drupal/issues /2930715) că diferite probleme cauzează eroarea originală. Se presupune că a fost „remediat”, mă întreb doar cum se descurcă oamenii de obicei.
drapel cn
Se pare că modulul de dezvoltare declanșează eroarea (cel puțin la această iterație) - puteți dezinstala acel modul sau pur și simplu ajungeți în aceeași buclă?
4uk4 avatar
drapel cn
Cele două probleme menționate sunt o eroare de bază foarte timpurie din 2014 și una de la un modul contrib din 2017, ambele remediate. În cazul dvs., vinovatul este modulul de dezvoltare, totuși, `Drupal\devel\EntityTypeInfo->getPathParts` apelează de două ori o reconstrucție a rutei. Și acest lucru este cauzat de două module diferite Ggroup și Views invocând printr-o coincidență nefericită, dezvoltatorii modifică cârligul de mai multe ori.
drapel ke
ar trebui RouteProviderLazyBuilder să-și seteze propriul steag de reconstrucție înainte de a încerca să reconstruiască?
drapel ke
ha, am dezinstalat devel și acum primesc Symfony\Component\Routing\Exception\RouteNotFoundException: Ruta "devel.admin_settings" nu există. în Drupal\Core\Routing\RouteProvider->getRouteByName() (linia 206 din core/lib/Drupal/Core/Routing/RouteProvider.php).
4uk4 avatar
drapel cn
Faptul că generatorul de rute este rulat printr-o clasă proxy construită leneș nu contează. Mai întâi aș scăpa de Ggroup. Acest modul nu funcționează cu Devel, în opinia mea. Încearcă să obțină rute de la entități pentru care informațiile despre tipul de entitate nu sunt încă descoperite și devel se conectează la descoperirea tipului de entitate pentru a-și face treaba înainte ca rutele să fie construite.
miststudent2011 avatar
drapel fr
Din întâmplare, ați aplicat patch-ul din problema [#2726209](https://www.drupal.org/project/devel/issues/2726209#comment-13573873) dacă da, eliminați patch-ul și încercați din nou. Cel mai probabil îți va rezolva problema.
drapel ke
Hmm. Folosisem acel patch, dar l-am eliminat din compozitor pe lângă adăugarea unor hack-uri la RouteProviderLazyBuilder. Prea multe schimbări deodată. Se pare că eliminarea acelui plasture este suficientă în sine. Cred că Devel trebuie să adauge ceva acolo pentru a preveni acest lucru.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.