Điểm:0

Cách xử lý "Phát hiện xây dựng lại bộ định tuyến đệ quy." lỗi ngoại lệ

lá cờ ke

Tôi thường thấy việc cài đặt và gỡ cài đặt mô-đun không thành công với lỗi

Uncaught PHP Ngoại lệ RuntimeException: "Đã phát hiện xây dựng lại bộ định tuyến đệ quy." tại /path/to/drupal/web/core/lib/Drupal/Core/Routing/RouteBuilder.php dòng 121

Có vẻ như vấn đề cơ bản là đã xảy ra sự cố và cách xử lý lỗi cố gắng lấy thông tin bộ định tuyến đã được thay đổi.

Thực tế là nó tạo ra ngoại lệ WSOD chết người này có phải là một lỗi cốt lõi không? Hay đây là một trong những điều mà họ sẽ luôn đổ trách nhiệm cho bất cứ điều gì gây ra lỗi ban đầu? Có một cách tốt để chẩn đoán những vấn đề này?

Nó để lại các mô-đun được cài đặt một nửa, giống như với các loại thực thể đã đăng ký nhưng không có lược đồ. Nó không phải là tuyệt vời.

Một lỗi ví dụ:

Trang web này gặp phải một lỗi không mong muốn. Vui lòng thử lại sau.

RuntimeException: Phát hiện xây dựng lại bộ định tuyến đệ quy. trong Drupal\Core\Routing\RouteBuilder->rebuild() (dòng 121 của core/lib/Drupal/Core/Routing/RouteBuilder.php).
Drupal\Core\ProxyClass\Routing\RouteBuilder->rebuild() (Dòng: 67)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRouteProvider() (Dòng: 104)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRoutesByPattern() (Dòng: 115)
Drupal\devel\EntityTypeInfo->getPathParts() (Dòng: 100)
Drupal\devel\EntityTypeInfo->setEntityTypeLinkTemplate() (Dòng: 75)
Drupal\devel\EntityTypeInfo->entityTypeAlter() (Dòng: 94)
devel_entity_type_alter() (Dòng: 539)
Drupal\Core\Extension\ModuleHandler->alter() (Dòng: 334)
Drupal\Core\Plugin\DefaultPluginManager->alterDefinitions() (Dòng: 127)
Drupal\Core\Entity\EntityTypeManager->findDefinitions() (Dòng: 175)
Drupal\Core\Plugin\DefaultPluginManager->getDefinitions() (Dòng: 22)
Drupal\Core\Plugin\DefaultPluginManager->getDefinition() (Dòng: 136)
Drupal\Core\Entity\EntityTypeManager->getDefinition() (Dòng: 257)
Drupal\Core\Entity\EntityTypeManager->getHandler() (Dòng: 196)
Drupal\Core\Entity\EntityTypeManager->getStorage() (Dòng: 497)
Drupal\Core\Entity\EntityBase::loadMultiple() (Dòng: 19)
Drupal\ggroup\Routing\SubgroupRouteProvider->getRoutes()
call_user_func() (Dòng: 146)
Drupal\Core\Routing\RouteBuilder->rebuild() (Dòng: 83)
Drupal\Core\ProxyClass\Routing\RouteBuilder->rebuild() (Dòng: 67)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRouteProvider() (Dòng: 104)
Drupal\Core\Routing\RouteProviderLazyBuilder->getRoutesByPattern() (Dòng: 115)
Drupal\devel\EntityTypeInfo->getPathParts() (Dòng: 100)
Drupal\devel\EntityTypeInfo->setEntityTypeLinkTemplate() (Dòng: 75)
Drupal\devel\EntityTypeInfo->entityTypeAlter() (Dòng: 94)
devel_entity_type_alter() (Dòng: 539)
Drupal\Core\Extension\ModuleHandler->alter() (Dòng: 334)
Drupal\Core\Plugin\DefaultPluginManager->alterDefinitions() (Dòng: 127)
Drupal\Core\Entity\EntityTypeManager->findDefinitions() (Dòng: 175)
Drupal\Core\Plugin\DefaultPluginManager->getDefinitions() (Dòng: 22)
Drupal\Core\Plugin\DefaultPluginManager->getDefinition() (Dòng: 136)
Drupal\Core\Entity\EntityTypeManager->getDefinition() (Dòng: 257)
Drupal\Core\Entity\EntityTypeManager->getHandler() (Dòng: 196)
Drupal\Core\Entity\EntityTypeManager->getStorage() (Dòng: 247)
Drupal\views\EventSubscriber\ViewsEntitySchemaSubscriber->onEntityTypeDelete() (Dòng: 51)
Drupal\views\EventSubscriber\ViewsEntitySchemaSubscriber->onEntityTypeEvent()
call_user_func() (Dòng: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (Dòng: 145)
Drupal\Core\Entity\EntityTypeListener->onEntityTypeDelete() (Dòng: 167)
Drupal\Core\Entity\EntityDefinitionUpdateManager->uninstallEntityType() (Dòng: 490)
Drupal\Core\Extension\ModuleInstaller->gỡ cài đặt() (Dòng: 91)
Drupal\Core\ProxyClass\Extension\ModuleInstaller->gỡ cài đặt() (Dòng: 174)
Drupal\system\Form\ModulesUninstallConfirmForm->submitForm()
call_user_func_array() (Dòng: 114)
Drupal\Core\Form\FormSubmitter->executeSubmitHandlers() (Dòng: 52)
Drupal\Core\Form\FormSubmitter->doSubmitForm() (Dòng: 592)
Drupal\Core\Form\FormBuilder-> processForm() (Dòng: 320)
Drupal\Core\Form\FormBuilder->buildForm() (Dòng: 73)
Drupal\Core\Controller\FormController->getContentResult()
call_user_func_array() (Dòng: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Dòng: 564)
Drupal\Core\Render\Renderer->executeInRenderContext() (Dòng: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext() (Dòng: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Dòng: 158)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (Dòng: 80)
Symfony\Component\HttpKernel\HttpKernel->handle() (Dòng: 58)
Drupal\Core\StackMiddleware\Session->handle() (Dòng: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (Dòng: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (Dòng: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle() (Dòng: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (Dòng: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (Dòng: 23)
Ngăn xếp\StackedHttpKernel->xử lý () (Dòng: 708)
Drupal\Core\DrupalKernel->xử lý() (Dòng: 19)
4uk4 avatar
lá cờ cn
Bạn có thể đăng thông báo lỗi đầy đủ với dấu vết ngăn xếp không?
lá cờ ke
Bạn có thể thấy từ các lỗi như [#2351353](https://www.drupal.org/project/drupal/issues/2351353) và [#2930715](https://www.drupal.org/project/drupal/issues /2930715) rằng các sự cố khác nhau gây ra lỗi ban đầu. Giả sử nó đã được "sửa", tôi chỉ tự hỏi làm thế nào mọi người thường xử lý nó.
lá cờ cn
Có vẻ như đó là mô-đun devel gây ra lỗi (ít nhất là ở lần lặp lại này) - bạn có thể gỡ cài đặt mô-đun đó không hay bạn chỉ kết thúc trong cùng một vòng lặp?
4uk4 avatar
lá cờ cn
Hai vấn đề được đề cập là một lỗi cốt lõi rất sớm từ năm 2014 và một lỗi từ mô-đun đóng góp từ năm 2017, cả hai đều đã được sửa. Tuy nhiên, trong trường hợp của bạn, thủ phạm là mô-đun devel, `Drupal\devel\EntityTypeInfo->getPathParts` đang gọi xây dựng lại tuyến đường hai lần. Và điều này là do hai mô-đun khác nhau Ggroup và Chế độ xem được gọi bởi một sự trùng hợp không may mắn nào đó mà các nhà phát triển thay đổi hook nhiều lần.
lá cờ ke
RouteProviderLazyBuilder có nên đặt cờ xây dựng lại của riêng mình trước khi cố gắng xây dựng lại không?
lá cờ ke
ha, tôi đã gỡ cài đặt devel và bây giờ tôi nhận được Symfony\Component\Routing\Exception\RouteNotFoundException: Tuyến "devel.admin_settings" không tồn tại. trong Drupal\Core\Routing\RouteProvider->getRouteByName() (dòng 206 của core/lib/Drupal/Core/Routing/RouteProvider.php).
4uk4 avatar
lá cờ cn
Thực tế là trình tạo tuyến đường được chạy qua một lớp proxy được xây dựng lười biếng không thành vấn đề. Tôi sẽ thoát khỏi Ggroup trước. Theo tôi, mô-đun này không hoạt động với Devel. Nó cố gắng lấy các tuyến từ các thực thể mà thông tin loại thực thể chưa được phát hiện và phát triển đang kết nối với khám phá loại thực thể để thực hiện công việc của riêng nó trước khi các tuyến được tạo.
miststudent2011 avatar
lá cờ fr
Có phải bạn đã áp dụng bản vá từ sự cố [#2726209](https://www.drupal.org/project/devel/issues/2726209#comment-13573873) nếu có, hãy xóa bản vá và thử lại. Nó rất có thể sẽ giải quyết vấn đề của bạn.
lá cờ ke
Hừm. Tôi đã sử dụng bản vá đó nhưng tôi đã xóa nó khỏi trình soạn thảo ngoài việc thêm một số bản hack vào RouteProviderLazyBuilder. Quá nhiều thay đổi cùng một lúc. Có vẻ như bản thân việc gỡ bỏ bản vá đó là đủ. Tôi nghĩ rằng Devel cần phải thêm một cái gì đó ở đó để ngăn chặn điều này.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.