記事を新規作成しようとしたらWordPressのカテゴリが吹っ飛んだ→Apacheが Got error 28 from storage engine エラーを吐いていたので対処

Duplicate Postsで過去の記事をコピーして編集しようとしたら、まずブロックエディタ上で記事が公開できないというエラーに遭遇しました。

何かがおかしいと思い、投稿一覧画面に戻ると……カテゴリー・タグが一切消えていました。

慌ててサイドメニューからカテゴリーの一覧を表示させると、空っぽに……。

これはDuplicate Postsでコピー中に何かが起きた(しかも、the_postsはコピーできたがターム周りのどこかでダメだった、という感じ)と思ってサーバログを漁ってみることに。

すると、Apacheのエラーログ(/var/log/httpd/error_log)に以下のエラーが。

(前略) Got error 28 from storage engine for query SHOW FULL COLUMNS FROM wp_options made by require_once(‘wp-load.php’) (後略)

Got error 28 from storage engineというのが怪しそう、と思って検索してみると、ディスク使用量がいっぱいになってしまった場合に発生するメッセージのようです。

そこでdf -hしてみましたが

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_HOSTNAME-lv_root
                       50G   12G   35G  26% /
tmpfs                 918M     0  918M   0% /dev/shm
/dev/sda1             477M  139M  313M  31% /boot
/dev/mapper/vg_HOSTNAME-lv_home
                       94G   53G   37G  60% /home

あれ、いっぱいではない……。

訝しみつつdu /var/log/してみると、過去にテストでELKスタックを構築した際のlogstashのログが大量に残っていました……。

パーティション的には大丈夫そうですが、ログディレクトリの中で見るとこれを切るのが手っ取り早そうだったので、logstashのログをバッサリ切ってサーバを再起動。

これでWordPress側は何も弄らずに復旧しました。DBの中身も実際にデータが飛んだわけではなく、ログ書き込みができなくて途中で処理が止まってロックがかかってしまった感じではないかと考えられます。

参考

この記事を書いた人

アバター

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。