(from osdn.net/users/hogefoobar)
hogefoobarと申します。
ファイルシステムのクロールを行っていますが、クロールが完結せずに困っています。
logを見ると、
return container.getComponent(“crawlJob”).execute(executor);
Exit Code: 137
Output:
Processed: /opt/fess/webapps/fess/WEB-INF/db/robot.trace.db
Processed: /opt/fess/webapps/fess/WEB-INF/db/robot.lock.db
Processed: /opt/fess/webapps/fess/WEB-INF/db/robot.h2.db
とあります。
「ExitCode:137」の意味するところは何でしょうか?ご教示頂けますと助かります。
以上、よろしくお願いします。
(from osdn.net/users/hogefoobar)
ちなみにfess.outの当該logは以下のようになります。
2014-06-24 17:55:52,178 [Thread-68] INFO jp.sf.fess.job.CrawlJob - Crawler: Exit Code=137 - Crawler Process Output:
Processed: /opt/fess/webapps/fess/WEB-INF/db/robot.trace.db
Processed: /opt/fess/webapps/fess/WEB-INF/db/robot.lock.db
Processed: /opt/fess/webapps/fess/WEB-INF/db/robot.h2.db
2014-06-24 17:55:52,179 [Thread-68] WARN jp.sf.fess.job.CrawlJob - Could not delete a temp dir: /opt/fess/temp/fessTmpDir_20140624175435
2014-06-24 17:55:52,179 [Thread-68] ERROR jp.sf.fess.job.TriggeredJob - Failed to execute job1: return container.getComponent(“crawlJob”).execute(executor);
jp.sf.fess.FessSystemException: Exit Code: 137
Output:
Processed: /opt/fess/webapps/fess/WEB-INF/db/robot.trace.db
Processed: /opt/fess/webapps/fess/WEB-INF/db/robot.lock.db
Processed: /opt/fess/webapps/fess/WEB-INF/db/robot.h2.db
at jp.sf.fess.job.CrawlJob.executeCrawler(CrawlJob.java:323)
at jp.sf.fess.job.CrawlJob.execute(CrawlJob.java:196)
at jp.sf.fess.job.CrawlJob.execute(CrawlJob.java:107)
at jp.sf.fess.job.CrawlJob$execute.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at Script1.run(Script1.groovy:1)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:518)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:556)
at groovy.lang.GroovyShell.evaluate(GroovyShell.java:527)
at jp.sf.fess.job.impl.GroovyExecutor.execute(GroovyExecutor.java:35)
at jp.sf.fess.job.TriggeredJob.execute(TriggeredJob.java:85)
at jp.sf.fess.db.exentity.ScheduledJob$1.run(ScheduledJob.java:58)
at java.lang.Thread.run(Thread.java:744)
(from osdn.net/users/shinsuke)
Exit Codeは一般的なプロセスの終了コードです。
137-128=9でSIGKILLなので何かしらの理由でクロールプロセスを
実行してSIGKILLが返ってきたのではないでしょうか?
PATHやJAVA_HOMEなどがおかしいとかもあるのかもしれません。
(from osdn.net/users/hogefoobar)
返信ありがとうございます。
ご指摘の件ですが、900ファイルぐらいはクロール出来ているので、PATHやJAVA_HOMEがおかしい線は薄いかな、と思っています。
今までの経験則的に見てみると、fess_crawler.outが
[IndexUpdater] INFO jp.sf.fess.solr.IndexUpdater - Sent 5 documents. The execution time is 1020ms.
[IndexUpdater] INFO jp.sf.fess.solr.IndexUpdater - The number of a crawled document is 297. The processing size is 5. The execution time is 5ms.
[IndexUpdater] INFO jp.sf.fess.solr.IndexUpdater - Stopped all crawler threads. You have 297 (>100) unprocessed documents.
[IndexUpdater] INFO jp.sf.fess.solr.IndexUpdater - Sending 5 document to a server.
のようなメッセージが出てきて、処理が滞留しているようなメッセージが出てきて、5件ずつ減になって、最後、これが0件まで行ききいらず(このときは42件まで減って中断してました。)クロールがFAILする、という具合です。
パラメータの設定でどうにかならないか、色々工夫していますが、解消には至っていません。
(from osdn.net/users/hogefoobar)
すいません。上記書き込みは、あまりあてになりませんでした。
普通にファイルのクロールの途中でも中断しています。
ただ、何度もやっているのですが、相変わらず137で止まるのは相変わらずです。
対象は一定していません。(137で止まるファイルが判明すれば除外すればよいかとも思ったのですが…)
(from osdn.net/users/hogefoobar)
相変わらず状況は好転しておりません。137で止まります。
…しかし、クロール済みのドキュメント数は増えて行っています。
最初900件ぐらいだったのが、今は3600件ぐらいになってます。
このままクロールをし続ければ、完走できるのかしら?と思い始めています。
どれくらいFAILすれば、かは分かりませんが。
(from osdn.net/users/shinsuke)
以前にMLあたりで、この手の問題で報告されていた方がいたように思いますが、
そのときは物理メモリが足りなくなり、OSによりSIGKILLが発行されて
クロールのプロセスが終了していたかと思います。
デフォルトではFess自体(Tomcat部分)は1G以上のメモリを消費し、
クロールプロセスはそれとは別に512M以上のメモリを必要とします。
OSまで考えると、スワップ含めて2G程度の物理メモリは必要かと
思います(調整すれば使用量を減らすことはできますが)。
OSのログ等も確認していただくのが良いかと思います。
(from osdn.net/users/hogefoobar)
返信ありがとうございました。
頂いた情報を元に、サーバのメモリを2G→4Gに増やし、再度クロールをしております。
…落ちません。
今まで、1時間もクロールすれば落ちていたのですが、5時間経過した今でも落ちません。
3千件しかなかったドキュメントが、今は2万件を超えて増え続けています。
ご指摘いただいた事がビンゴだったようです。
ありがとうございました。