[Solr] background merge hit exception

というエラーが出た。
ぐぐったところ

Solr – User – background merge hit exception – Lucene – Nabble

上記では質問者はファイルシステムのエラーを疑い、回答者は残り容量が少ないのが答えと言っている。

他のQ&Aサイトでも残り容量の話は出ていたが、容量は十分にある、という状況が多かった。

結論から言うと今回のケースはファイルシステムのエラーだった。
一度、エラーの出ているDiskをumoutして、

fdisk /dev/sdf

を行ったらエラーが検出されたので修復し、Optimizeを実行したところうまくいった。

EBSをfdiskでext3でフォーマットしたDiskなのだがどうにも調子が悪い。
それまではI/O性能重視でEphemeral Diskを使っていたのだが、こちらもセクタエラーが発生するようになってしまい、Stop -> Start で再生成した。
当然、Indexは消えてしまう。
500万件超のデータを再度Indexingするには相当な時間がかかるため、EBSに変更したのだ。

最初は一気にCommitしていたら、460万件ほどのところでCommitやOptimizeを行うと
Solrが落ちるようになった(selectは問題なし)。
ちなみにSolrのVersionは3.5.0

#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGBUS (0x7) at pc=0x00002aaaab26f3bb, pid=14777, tid=1102334272
#
# JRE version: 6.0_14-b08
# Java VM: Java HotSpot(TM) 64-Bit Server VM (14.0-b16 mixed mode linux-amd64 )
# Problematic frame:
# C [libc.so.6+0x7c3bb] memcpy+0x15b
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

上記のようなJava VMのエラーだが、

attempt to access beyond end of device

が/var/log/messages に吐き出されている。
要はDisk I/O多すぎ、ということらしい。

色々やってみたが治らないので一度Indexを削除し、40万件ぐらいずつCommit+Optimizeをやり直しているところで出たのが掲題のエラー。

また壊れるのではないか心配である。

カテゴリー: AWS, Solr   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です