ClamAVのエラー LibClamAV Error: mpool_malloc(): Attempt to allocate bytes.
2016年10月22日……。
僕の地獄はここから始まった……。
サーバが繋がらなくなった、という連絡が入り、たまに壊れるのでまあ、あるかとその時は思っていましたね。
世界で同時多発したらしい、ClamAVのメモリアロケーションエラー。
最新版のClamAVが入ってれば起こりません。
Bug 11647 - bugzilla.clamav.net
https://bugzilla.clamav.net/show_bug.cgi?id=11647
上記でバグ報告上がってます。
Comment 7にて、
8388608 byte ≒ 128Mbyte までしか使えないようです。
libclamav.so.バージョン のファイルの、最後に書いてある 16進数を0x80000から0x100000へ書き換えれば動くようになるけど自己責任で、と書いてありますが……!
最新バージョンは、この割当量が増えてます。
とりあえず最新バージョンに上げれるなら上げてしまったほうがいいです。
ClamAVは、「clamav本体」「clamavのデーモン」「clamavの更新プログラム」の3個から成ってますので、
全てアップグレードしないとアロケーションエラーが出るようです。
それぞれ、clamav、clamav-daemon(clamd)、freshclam、となりますので、
この3個共パッケージちゃんとアップグレードしましょう。
ちなみに、ClamAVのバージョンが、0.97で起こっているようです。
0.98以上に上げれば問題無いのですが、上げれない場合もあります。
僕のように、Ubuntu 11.10(Oneiric)を使っていると上げれないようです。
色々やってみましたが、僕の知識が少ないのでできず……。
結論、ClamAVを止める or Ubuntu 12.04にアップグレードする、が最短手段?のようです。
ClamAVを止めるとセキュリティ的なところもあると思いますので、アップグレードかなと。
SSHや、端末でログインすると、”Run ‘do-release-upgrade’ to upgrade to it.”というのが出るので、do-release-upgradeとコマンドいれてアップグレードしましょう。
起動時、上記エラーが出てしまい、ログイン出来ない場合。
Ubuntuであれば、GRUB画面でrecovery modeを選び、remountしてからrootログインを行い、
とりあえず、clamav-daemonのパーミッションから、実行権限抜いてあげれば起動します。
chmod a-x /etc/init.d/clamav-daemon
たまにremountで止まって進まない場合は、
GRUBの選択画面で、eを押して、linuxの行から、roとなっているところをrwに変更してF10で起動します。
選択画面でてきたら、remount選ばずroot選べば直接読み書きできるようになってます。
ついでに、ログも肥大化してる可能性大なので、お気をつけください。
HDDの空き容量0%になってる場合あります。
その他OSに関しても、シングルユーザーモードでログインすれば大丈夫なんじゃないかと。
もしかしたらUNIXで起こってるのはUbuntuだけかもしれないですが。。。
Mac OS Xでも起こっているようで大変ですねほんと。
Mac OS Xでメール関連エラーで数分起きリブートがかかる?ようで、対処方法は上記リンクの中にあります。
Mycestroで勝手にカーソルが動く mdadmで他サーバのRAID1構成HDDをマウント