某日

いつも通り何も考えずubuntuを最新にする。

sudo apt-get update && sudo apt-get upgrade -y

何も考えず再起動する

sudo shutdown -r now

 

翌日

朝起きると, サーバのload averageとCPU使用率が高いという警告がmackerelから届いていた。

ログインしてtopとpsを叩くと、どうもruby (unicorn)がCPUを食いつぶしてるらしい。redmineのログを見てみると、無限に肥大化しており何が何だかわからない。死ぬほどログが垂れ流されているところをよくよくみると、

E, [2015-06-05T00:47:38.882239 #1267] ERROR – : Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2) (Mysql2::Error)

と書いてある。

netstatとかpsとか叩いてみると、たしかにmysqlが起動していない……

今度はmysqlのログを見てみると、

150604 0:24:00 [ERROR] Can’t start server: Bind on TCP/IP port: Cannot assign requested address 150604 0:24:00 [ERROR] Do you already have another mysqld server running on port: 3306 ? 150604 0:24:00 [ERROR] Aborting

150604 0:24:00 InnoDB: Starting shutdown… 150604 0:24:01 InnoDB: Shutdown completed; log sequence number 2714169 150604 0:24:01 [Note] /usr/sbin/mysqld: Shutdown complete

当然だが他に3306ポートを使ってる人はいないし、意味不明である。my.cnfをみると、bind-address = 127.0.0.1 とある。

ふと思ってifconfigと叩くと、eth0しか出てこない…… 普段eth0とloが出てこなかったっけ?

まったく意味不明であるが、ifup loと叩くと、

ifup: interface lo already configured

とでる。が、ifconfig lo up としたら無事loがあがって、localhostへのpingも通るようになり、mysqlも起動し、unicornも起動した。loが消えた理由についてはまったくわかっていない。

# そもそもbindできないときにCPU食いつぶすのはどうかと思うが、、、