Перейти к основному содержанию

Drupal 9.5 — ошибка в журнале после обновления

Drupal 9

После обновления Drupal до версии 9.5.x поймал ошибку, из-за которой нельзя открыть отчёт журнала.

TypeError: Cannot access offset of type string on string

[24-Jun-2023 12:56:06 Europe/Moscow] TypeError: Cannot access offset of type string on string in \core\modules\views\src\Plugin\views\area\Text.php on line 50 #0 \core\modules\views\src\ViewExecutable.php(1016): Drupal\views\Plugin\views\area\Text->preQuery()
#1 \core\modules\views\src\ViewExecutable.php(1238): Drupal\views\ViewExecutable->_preQuery()
#2 \core\modules\views\src\ViewExecutable.php(1396): Drupal\views\ViewExecutable->build()
#3 \core\modules\views\src\ViewExecutable.php(1459): Drupal\views\ViewExecutable->execute()
#4 \core\modules\views\src\Plugin\views\display\DisplayPluginBase.php(2459): Drupal\views\ViewExecutable->render()
#5 \core\modules\views\src\ViewExecutable.php(1667): Drupal\views\Plugin\views\display\DisplayPluginBase->preview()
#6 \core\modules\views_ui\src\ViewUI.php(611): Drupal\views\ViewExecutable->preview()
#7 \core\modules\views_ui\src\ViewPreviewForm.php(62): Drupal\views_ui\ViewUI->renderPreview()
#8 \core\lib\Drupal\Core\Entity\EntityForm.php(106): Drupal\views_ui\ViewPreviewForm->form()
#9 \core\modules\views_ui\src\ViewFormBase.php(41): Drupal\Core\Entity\EntityForm->buildForm()
#10 [internal function]: Drupal\views_ui\ViewFormBase->buildForm()
#11 \core\lib\Drupal\Core\Form\FormBuilder.php(536): call_user_func_array()
#12 \core\lib\Drupal\Core\Form\FormBuilder.php(375): Drupal\Core\Form\FormBuilder->retrieveForm()
#13 \core\lib\Drupal\Core\Form\FormBuilder.php(633): Drupal\Core\Form\FormBuilder->rebuildForm()
#14 \core\lib\Drupal\Core\Form\FormBuilder.php(325): Drupal\Core\Form\FormBuilder->processForm()
#15 \core\lib\Drupal\Core\Controller\FormController.php(73): Drupal\Core\Form\FormBuilder->buildForm()
#16 [internal function]: Drupal\Core\Controller\FormController->getContentResult()
#17 \core\lib\Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array()
#18 \core\lib\Drupal\Core\Render\Renderer.php(580): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#19 \core\lib\Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext()
#20 \core\lib\Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext()
#21 \vendor\symfony\http-kernel\HttpKernel.php(169): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#22 \vendor\symfony\http-kernel\HttpKernel.php(81): Symfony\Component\HttpKernel\HttpKernel->handleRaw()
#23 \core\lib\Drupal\Core\StackMiddleware\Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle()
#24 \core\lib\Drupal\Core\StackMiddleware\KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle()
#25 \core\modules\page_cache\src\StackMiddleware\PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle()
#26 \core\modules\page_cache\src\StackMiddleware\PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass()
#27 \core\lib\Drupal\Core\StackMiddleware\ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle()
#28 \core\lib\Drupal\Core\StackMiddleware\NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle()
#29 \vendor\stack\builder\src\Stack\StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle()
#30 \core\lib\Drupal\Core\DrupalKernel.php(718): Stack\StackedHttpKernel->handle()
#31 \index.php(19): Drupal\Core\DrupalKernel->handle()
#32 {main}

Явно какой-то косяк обновления версий. В 9.4.x тоже встречалось у людей:

https://www.drupal.org/project/drupal/issues/3301873

Есть предложения залезть в код ядра, но это не наш метод. Мы просто поправим представление данной страницы.

/admin/reports/dblog

Редактируем представление журнала:

drupal

И удаляем всё что находится в блоке ПОВЕДЕНИЕ ПРИ ОТСУТСТВИИ РЕЗУЛЬТАТОВ. Отредактировать текущее поведение, кстати, тоже не получилось, но при изменении порядка можно это поведение грохнуть. Потом можно заново добавить сюда какое-нибудь сообщение типа "Здесь рыбы нет". Сохраняем представление, ошибка устранена.

Теги

 

Похожие материалы