サイトに予期せぬエラーが起こりました。しばらくたってから再度お試しください。

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
abechiyo2000's picture

Drupal7を運営してから1年が経過し、何もプログラム等変更していない状態で下記のエラーが出るようになった。

エラー内容

日本語:サイトに予期せぬエラーが起こりました。しばらくたってから再度お試しください。
英語:The website encountered an unexpected error. Please try again later.

PHPのエラー、Apacheのエラーがともに出なく困っていました。

解決方法

当件について、Drupal コミュニティのSlackにて問いを投げたところ、blauerberg(https://groups.drupal.org/user/75056)さんと、Tomotsugu Kaneko(https://groups.drupal.org/user/2926193)さんに助けていただいので、g.d.o にも展開しておきます。

今回のエラーは結果的にwatchdogの primary keyがint maxまで行ってたのが原因でした。
当件は下記の通り、watchdogのデータを削除後、auto_increment を 1に戻すことで解決しました。

// 2147483647 が intの最大値

mysql> select auto_increment from information_schema.tables where table_name = 'watchdog';
+----------------+
| auto_increment |
+----------------+
| 2147483647 |
+----------------+

// watchdog 削除
mysql> delete from watchdog;
Query OK, 1 row affected (0.01 sec)

// auto_increment を1 に戻す
mysql> alter table watchdog auto_increment = 1;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0

// 確認
mysql> select auto_increment from information_schema.tables where table_name = 'watchdog';
+----------------+
| auto_increment |
+----------------+
| 1 |
+----------------+

作業は以上です。
また大規模サイトを運営する場合、watchdogは停止し、syslogを使うとレスポンス的にも良いそうです。
https://www.karelbemelmans.com/2015/05/drupal-watchdog-logging-dblog-vs-...