background
CMS

Drupal管理画面でコンテンツ検索画面でエラーが発生し表示されなくなった。(drupal8.8.1)

2022/01/28公開
Drupal管理画面でコンテンツ検索画面でエラーが発生し表示されなくなった。(drupal8.8.1)

DrupalでWebサイトを構築する案件に携わりました。その案件でDrupal管理画面のコンテンツ検索画面(/admin/content)でエラーメッセージが表示されてしまい正常に表示されなくなった時の原因と解決策を記載します。

Acquia Lightningとは(引用)

Acquia Lightningは、オープンソースのDrupal 8ディストリビューションです。開発者がより優れたサイトをより速く構築できるように、あらかじめ選定されたモジュールが搭載されています。

https://www.acquia.com/jp/products-services/acquia-lightning

環境

  • PHP 7.3
  • drupal 8.8.1
  • Acquia Lightning 8.x-4.101

コンテンツ検索画面が表示されなくなったタイミング

Drupal管理画面のコンテンツ検索画面でコンテンツの一括削除を行った際にエラーが発生した。その後、コンテンツ検索画面にアクセスすると以下のメッセージが表示され画面が正常に表示されなくなってしまった。

画面に表示されたメッセージ


            Temporarily Unavailable 
            The website that you're trying to reach is having technical difficulties and is currently unavailable.
            We are aware of the issue and are working hard to fix it. Thank you for your patience. 
            

またログには以下のエラーが出力されていました。

エラーログ抜粋


            TypeError: Argument 1 passed to
            Drupal\views\Plugin\views\field\EntityOperations::getEntityTranslation() must implement interface Drupal\Core\Entity\EntityInterface, null given, called in /mnt/www/html/[サイト名]/docroot/core/modules/views/src/Plugin/views/field/EntityOperations.php
            on line 142 in
            Drupal\views\Plugin\views\field\EntityOperations->getEntityTranslation()
            (line 69 of
            /mnt/www/html/[サイト名]/docroot/core/modules/views/src/Entity/Render/EntityTranslationRenderTrait.php)
            

原因

Drupalではノードのデータは複数のテーブルで管理しているのですがその中の1つのテーブルのデータの削除に失敗しデータ不整合の状態となっていた。
具体的には「node」テーブルのデータは正常に削除できたが「node_field_data」テーブルのデータの削除に失敗していた。

解決策

削除されていなかったテーブルのデータを削除することで不整合を解消。削除後、コンテンツ検索画面が正常に表示されるようになりました。
以下の手順で作業を実施。

  1. 不整合の状態となっているノードを特定する。(「node_field_data」テーブルにしか存在しないノードを見つける)
  2. 「node_field_data」テーブルのバックアップを取得する。(念のため)
  3. 削除されなかったレコードを手動で削除する。

            DELETE FROM site_name.node_field_data WHERE NID = [削除対象のノードのノードID]
            

まとめ

WEBSASでは、Drupal関連の様々な案件を対応しております。
Drupal,Acquiaのサイト作成に興味がある方は,是非WEBSAS(https://websas.jp/)にお問い合わせください!