Forums: 【移行しました】サポート (Thread #36695)

差分クロールでSolrインスタンスが応答しなくなる (2015-04-16 09:31 by gonzo #75951)

FESS 9.3.3
MySQL 5.6.23
jdk 1.8.0_31

以上の環境で、300程度のPDFファイルで構成されたフォルダをクロールしています。
初回のクロールは完了するのですが、差分クロールを実行すると30分程度でSolrインスタンスが応答しなくなります。
負荷が原因かと思いクロールの設定をスレッド数1 間隔を8000ms~30000ms等で調整し実施してみましたが、
1回目の差分クロールが正常に完了しても2回目の差分クロールでまたもsolrインスタンスが応答しなくなります。


ファイルに原因があると考え検証した結果が以下になります。

ファイル数はいずれも300、表示ファイル容量は1ファイル当たりの容量
設定は認証系以外クリーンインストール時の状態
○ 紙資料をスキャンして作成されたPDF ファイル容量115KB 問題発生せず
○ EXCEL等で吐き出されたPDF ファイル容量3.9MB 問題発生せず
× 紙資料をスキャンして作成されたPDF ファイル容量3.8MB 問題発生


紙資料をスキャンして作成されたPDFはタイトルだけでもクロールされるようにしたいと考えています。
対策はありませんでしょうか?

Reply to #75951×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

Re: 差分クロールでSolrインスタンスが応答しなくなる (2015-04-16 09:32 by gonzo #75952)

記載漏れがありました。

■備考
・MySQLのmy.iniファイルのmax_allowed_packetを4Mから32Mへ変更
・Fessに含まれているPDFBoxのバージョンを1.8.7から1.8.8に変更
 fontbox-1.8.7.jarを削除してfontbox-1.8.8.jarをコピー
 jempbox-1.8.7.jarを削除してjempbox-1.8.8.jarをコピー
 pdfbox-1.8.7.jarを削除してpdfbox-1.8.8.jarをコピー

 http://ftp.tsukuba.wide.ad.jp/software/apache//pdfbox/1.8.8/RELEASE-NOTES.txt
 [PDFBOX-2492]の不具合を解消するため。
Reply to #75951

Reply to #75952×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

Re: 差分クロールでSolrインスタンスが応答しなくなる (2015-04-16 09:41 by shinsuke #75953)

ログファイルには何か出力されていないのでしょうか?
Reply to #75952

Reply to #75953×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

Re: 差分クロールでSolrインスタンスが応答しなくなる (2015-04-16 14:44 by gonzo #75955)

[メッセージ #75953 への返信]
> ログファイルには何か出力されていないのでしょうか?
fess.outには特に何もありませんでしたが、solr.logには以下のようなログがありました。

■2015-xx-xx 14:41:15,228 [Thread-6] WARN jp.sf.fess.solr.plugin.suggest.SuggestUpdateController$TransactionLogParseTask - C:\fess-server-9.3.3\solr\core1\txlog\tlog\tlog.0000000000000000267 doesn't exist.
□2015-xx-xx 14:50:26,833 [http-apr-80-exec-7] ERROR org.apache.solr.servlet.SolrDispatchFilter - null:java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space
at org.apache.solr.servlet.SolrDispatchFilter.sendError(SolrDispatchFilter.java:793)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:434)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:612)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2466)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2455)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.lang.StringCoding.decode(StringCoding.java:215)
at java.lang.String.<init>(String.java:451)
at java.lang.String.<init>(String.java:503)
at org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.readField(CompressingStoredFieldsReader.java:205)
at org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.visitDocument(CompressingStoredFieldsReader.java:369)
at org.apache.lucene.index.SegmentReader.document(SegmentReader.java:335)
at org.apache.lucene.index.BaseCompositeReader.document(BaseCompositeReader.java:110)
at org.apache.lucene.index.IndexReader.document(IndexReader.java:471)
at org.apache.lucene.document.LazyDocument.getDocument(LazyDocument.java:99)
at org.apache.lucene.document.LazyDocument.fetchRealValues(LazyDocument.java:109)
at org.apache.lucene.document.LazyDocument.access$100(LazyDocument.java:40)
at org.apache.lucene.document.LazyDocument$LazyField.getRealValue(LazyDocument.java:149)
at org.apache.lucene.document.LazyDocument$LazyField.numericValue(LazyDocument.java:185)
at org.apache.solr.schema.TrieField.toObject(TrieField.java:115)
at org.apache.solr.schema.TrieDateField.toObject(TrieDateField.java:70)
at org.apache.solr.schema.TrieDateField.toObject(TrieDateField.java:56)
at org.apache.solr.response.BinaryResponseWriter$Resolver.getValue(BinaryResponseWriter.java:233)
at org.apache.solr.response.BinaryResponseWriter$Resolver.getDoc(BinaryResponseWriter.java:196)
at org.apache.solr.response.BinaryResponseWriter$Resolver.writeResultsBody(BinaryResponseWriter.java:156)
at org.apache.solr.response.BinaryResponseWriter$Resolver.writeResults(BinaryResponseWriter.java:183)
at org.apache.solr.response.BinaryResponseWriter$Resolver.resolve(BinaryResponseWriter.java:88)
at org.apache.solr.common.util.JavaBinCodec.writeVal(JavaBinCodec.java:158)
at org.apache.solr.common.util.JavaBinCodec.writeNamedList(JavaBinCodec.java:148)
at org.apache.solr.common.util.JavaBinCodec.writeKnownType(JavaBinCodec.java:242)
at org.apache.solr.common.util.JavaBinCodec.writeVal(JavaBinCodec.java:153)
at org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:96)
at org.apache.solr.response.BinaryResponseWriter.write(BinaryResponseWriter.java:52)
at org.apache.solr.servlet.SolrDispatchFilter.writeResponse(SolrDispatchFilter.java:758)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:426)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

■の行が100行程続いた後、□の行がクロール終了まで続きます。


別問題と思われますが上記ログは検証サーバで問題検証時に発生したもので、何故か本番サーバにはsolr.logは出力されていませんでした。
log4j.xmlはどちらも編集していないので本番機で出力されていない原因は不明です。
Reply to #75953

Reply to #75955×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login