クロールの停止ができない

(from osdn.net/users/daiki2kana)
fess 9.0系を使ってみてるのですが、クロールの停止ボタンでクロールプロセスが終了しません。なぜでしょうか?

(from osdn.net/users/matsutani)
[メッセージ #72437 への返信]

fess 9.0系を使ってみてるのですが、クロールの停止ボタンでクロールプロセスが終了しません。なぜでしょうか?
まずは
http://fess.codelibs.org/ja/9.1/config/logging.html
にあるログファイルにERRORとWARNが発生しているかをご確認いただけますでしょうか。
発生していた場合、どのようなメッセージが表示されていたかをお伝えください。

(from osdn.net/users/daiki2kana)
[メッセージ #72482 への返信]

まずは
http://fess.codelibs.org/ja/9.1/config/logging.html
にあるログファイルにERRORとWARNが発生しているかをご確認いただけますでしょうか。
発生していた場合、どのようなメッセージが表示されていたかをお伝えください。

返信ありがとうございます。
ERRORのメッセージはなく、WARNのメッセージがcrawler.outにありました。

2014-04-09 09:31:33,275 [Web Crawling Process] WARN org.seasar.framework.container.assembler.BindingTypeShouldDef - org.seasar.robot.client.FaultTolerantClientのプロパティ(requestListener)が見つからないので設定をスキップします

(from osdn.net/users/daiki2kana)
[メッセージ #72497 への返信]

返信ありがとうございます。
ERRORのメッセージはなく、WARNのメッセージがcrawler.outにありました。

2014-04-09 09:31:33,275 [Web Crawling Process] WARN org.seasar.framework.container.assembler.BindingTypeShouldDef - org.seasar.robot.client.FaultTolerantClientのプロパティ(requestListener)が見つからないので設定をスキップします

すいません。solr.logにも出ておりました。

2014-04-09 09:38:48,984 [SuggestIndexUpdater] WARN jp.sf.fess.solr.plugin.suggest.index.IndexUpdater - Failed to add document.

(from osdn.net/users/matsutani)
[メッセージ #72498 への返信]

[メッセージ #72497 への返信]

返信ありがとうございます。
ERRORのメッセージはなく、WARNのメッセージがcrawler.outにありました。

2014-04-09 09:31:33,275 [Web Crawling Process] WARN org.seasar.framework.container.assembler.BindingTypeShouldDef - org.seasar.robot.client.FaultTolerantClientのプロパティ(requestListener)が見つからないので設定をスキップします

すいません。solr.logにも出ておりました。

2014-04-09 09:38:48,984 [SuggestIndexUpdater] WARN jp.sf.fess.solr.plugin.suggest.index.IndexUpdater - Failed to add document.

松谷です。
ご確認ありがとうございます。

他にERRORが無いようであればお手数ですが、
下記の手順の実行結果を頂けますでしょうか。

まず、コマンドプロンプトにて
jpsコマンドで実行されているJavaのプロセスIDを確認します。
以下は%JAVA_HOMEがc:\Program Files\Java\配下であった場合の例となります。

cd C:\Program Files\Java\bin
jps
xxxx Crawler
xxxxがプロセスIDです。
次にプロセスIDをjstackに渡します。
jstack xxxx
こちらのコマンド実行後に出力される結果を頂けますでしょうか。

(from osdn.net/users/daiki2kana)
[メッセージ #72599 への返信]
返信ありがとうございます。

以下に出力結果を貼ります。

2014-04-15 12:18:26
Full thread dump Java HotSpot™ Server VM (23.25-b01 mixed mode):

“Java2D Disposer” daemon prio=10 tid=0x2ed59400 nid=0x1468 in Object.wait() [0x31baf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1053c958> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x1053c958> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at sun.java2d.Disposer.run(Disposer.java:145)
at java.lang.Thread.run(Thread.java:724)

“H2 Log Writer ROBOT” daemon prio=6 tid=0x2ed5d400 nid=0x139c in Object.wait() [0x31b0f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x107a1b50> (a org.h2.store.WriterThread)
at org.h2.store.WriterThread.run(WriterThread.java:105)
- locked <0x107a1b50> (a org.h2.store.WriterThread)
at java.lang.Thread.run(Thread.java:724)

“H2 File Lock Watchdog C:/fess/webapps/fess/WEB-INF/db/robot.lock.db” daemon prio=10 tid=0x2ed5cc00 nid=0x4c8 waiting on condition [0x3054f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.h2.store.FileLock.run(FileLock.java:493)
at java.lang.Thread.run(Thread.java:724)

“Robot-20140415121608-1-5” prio=6 tid=0x2ed5c800 nid=0xf0c waiting on condition [0x307af000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.seasar.robot.interval.impl.DefaultIntervalController.delayForWaitingNewUrl(DefaultIntervalController.java:123)
at jp.sf.fess.interval.FessIntervalController.delayForWaitingNewUrl(FessIntervalController.java:72)
at org.seasar.robot.interval.impl.AbstractIntervalController.delay(AbstractIntervalController.java:48)
at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:284)
at java.lang.Thread.run(Thread.java:724)

“Robot-20140415121608-1-4” prio=6 tid=0x2ed5c000 nid=0x1610 waiting on condition [0x318ef000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.seasar.robot.interval.impl.DefaultIntervalController.delayForWaitingNewUrl(DefaultIntervalController.java:123)
at jp.sf.fess.interval.FessIntervalController.delayForWaitingNewUrl(FessIntervalController.java:72)
at org.seasar.robot.interval.impl.AbstractIntervalController.delay(AbstractIntervalController.java:48)
at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:284)
at java.lang.Thread.run(Thread.java:724)

“Robot-20140415121608-1-3” prio=6 tid=0x2ed5bc00 nid=0x104c runnable [0x306bf000]
java.lang.Thread.State: RUNNABLE
at java.io.FileInputStream.read(Native Method)
at org.seasar.robot.util.TemporaryFileInputStream.read(TemporaryFileInputStream.java:56)
at java.io.InputStream.read(InputStream.java:179)
at java.io.InputStream.read(InputStream.java:101)
at org.seasar.robot.util.StreamUtil.drain(StreamUtil.java:41)
at org.seasar.robot.extractor.impl.TikaExtractor.getText(TikaExtractor.java:123)
at jp.sf.fess.transformer.AbstractFessFileTransformer.transform(AbstractFessFileTransformer.java:119)
at org.seasar.robot.processor.impl.DefaultResponseProcessor.process(DefaultResponseProcessor.java:73)
at org.seasar.robot.S2RobotThread.processResponse(S2RobotThread.java:384)
at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:183)
at java.lang.Thread.run(Thread.java:724)

“Robot-20140415121608-1-2” prio=6 tid=0x2ed5b400 nid=0x1938 waiting on condition [0x3193f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.seasar.robot.interval.impl.DefaultIntervalController.delayForWaitingNewUrl(DefaultIntervalController.java:123)
at jp.sf.fess.interval.FessIntervalController.delayForWaitingNewUrl(FessIntervalController.java:72)
at org.seasar.robot.interval.impl.AbstractIntervalController.delay(AbstractIntervalController.java:48)
at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:284)
at java.lang.Thread.run(Thread.java:724)

“Robot-20140415121608-1-1” prio=6 tid=0x2ed5ac00 nid=0x1530 waiting on condition [0x2e60f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.seasar.robot.interval.impl.DefaultIntervalController.delayForWaitingNewUrl(DefaultIntervalController.java:123)
at jp.sf.fess.interval.FessIntervalController.delayForWaitingNewUrl(FessIntervalController.java:72)
at org.seasar.robot.interval.impl.AbstractIntervalController.delay(AbstractIntervalController.java:48)
at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:284)
at java.lang.Thread.run(Thread.java:724)

“Robot-20140415121608-1” prio=6 tid=0x2ed5a800 nid=0xef8 in Object.wait() [0x3084f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0fecfa18> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1260)
- locked <0x0fecfa18> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1334)
at org.seasar.robot.S2Robot.run(S2Robot.java:238)
at java.lang.Thread.run(Thread.java:724)

“IndexUpdater” daemon prio=10 tid=0x2ed5a000 nid=0x1538 waiting on condition [0x307ff000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at jp.sf.fess.solr.IndexUpdater.run(IndexUpdater.java:207)

“Web Crawling Process” prio=6 tid=0x2ed59c00 nid=0x1c38 in Object.wait() [0x305af000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1070a460> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1268)
- locked <0x1070a460> (a java.lang.Thread)
at org.seasar.robot.S2Robot.awaitTermination(S2Robot.java:119)
at jp.sf.fess.helper.WebFsIndexHelper.crawl(WebFsIndexHelper.java:463)
at jp.sf.fess.helper.WebFsIndexHelper.crawl(WebFsIndexHelper.java:129)
at jp.sf.fess.exec.Crawler$2.run(Crawler.java:433)
at java.lang.Thread.run(Thread.java:724)

“SolrGroupMonitor” prio=6 tid=0x2ed58800 nid=0x1814 in Object.wait() [0x3060f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0fe3c038> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:552)
- locked <0x0fe3c038> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)

“Seasar2-TimeoutManager” daemon prio=6 tid=0x2ed58000 nid=0x1774 waiting on condition [0x2e65f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.seasar.extension.timer.TimeoutManager.run(TimeoutManager.java:153)
at java.lang.Thread.run(Thread.java:724)

“Service Thread” daemon prio=6 tid=0x2dfe7800 nid=0x15c4 runnable [0x00000000]
java.lang.Thread.State: RUNNABLE

“C2 CompilerThread1” daemon prio=10 tid=0x2dfdc800 nid=0x155c waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE

“C2 CompilerThread0” daemon prio=10 tid=0x2dfd8c00 nid=0x1150 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE

“Attach Listener” daemon prio=10 tid=0x2dfd8400 nid=0x9b0 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE

“Signal Dispatcher” daemon prio=10 tid=0x2dfd7c00 nid=0x3ac runnable [0x00000000]
java.lang.Thread.State: RUNNABLE

“Surrogate Locker Thread (Concurrent GC)” daemon prio=6 tid=0x2dfd5400 nid=0x1720 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE

“Finalizer” daemon prio=8 tid=0x2df5bc00 nid=0x1134 in Object.wait() [0x2e28f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0f60a2b8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
- locked <0x0f60a2b8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:189)

“Reference Handler” daemon prio=10 tid=0x2df55c00 nid=0x174c in Object.wait() [0x2e30f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0f60a2c8> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
- locked <0x0f60a2c8> (a java.lang.ref.Reference$Lock)

“main” prio=6 tid=0x00a7e000 nid=0xb74 in Object.wait() [0x00a6f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x1070a4c8> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1260)
- locked <0x1070a4c8> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1334)
at jp.sf.fess.exec.Crawler.joinCrawlerThread(Crawler.java:593)
at jp.sf.fess.exec.Crawler.doCrawl(Crawler.java:459)
at jp.sf.fess.exec.Crawler.process(Crawler.java:312)
at jp.sf.fess.exec.Crawler.main(Crawler.java:243)

“VM Thread” prio=10 tid=0x2df51400 nid=0x10c8 runnable

“Gang worker#0 (Parallel GC Threads)” prio=10 tid=0x00905c00 nid=0x11d8 runnable

“Gang worker#1 (Parallel GC Threads)” prio=10 tid=0x00906000 nid=0x1a5c runnable

“Gang worker#2 (Parallel GC Threads)” prio=10 tid=0x00907800 nid=0x1ea4 runnable

“Gang worker#3 (Parallel GC Threads)” prio=10 tid=0x0090c800 nid=0x147c runnable

“Concurrent Mark-Sweep GC Thread” prio=10 tid=0x2de40400 nid=0x1b54 runnable
“VM Periodic Task Thread” prio=10 tid=0x2e00ac00 nid=0xa38 waiting on condition

JNI global references: 278


松谷です。
ご確認ありがとうございます。

他にERRORが無いようであればお手数ですが、
下記の手順の実行結果を頂けますでしょうか。

まず、コマンドプロンプトにて
jpsコマンドで実行されているJavaのプロセスIDを確認します。
以下は%JAVA_HOMEがc:\Program Files\Java\配下であった場合の例となります。

cd C:\Program Files\Java\bin
jps
xxxx Crawler
xxxxがプロセスIDです。
次にプロセスIDをjstackに渡します。
jstack xxxx
こちらのコマンド実行後に出力される結果を頂けますでしょうか。

(from osdn.net/users/matsutani)
[メッセージ #72612 への返信]

[メッセージ #72599 への返信]

松谷です。
ご確認いただき、ありがとうございます。

jstackの結果には問題が無いようなので、Fess側でプロセスを停止できなかったものと思われます。
現象が再現されるか確認いたしますので、WindowsのバージョンとJavaのバージョンをお教えいただけますでしょうか。

(from osdn.net/users/daiki2kana)
[メッセージ #72671 への返信]

松谷です。
ご確認いただき、ありがとうございます。

jstackの結果には問題が無いようなので、Fess側でプロセスを停止できなかったものと思われます。
現象が再現されるか確認いたしますので、WindowsのバージョンとJavaのバージョンをお教えいただけますでしょうか。

返信ありがとうございます。

いくつかの環境でやっておりますが、どれもダメでした。
先日からのご要望のログは以下の環境です。

Windows 7 32bit
Java : jdk1.7.0_25

もう一方で
Windows 2008 R2
Java : jdk1.7.0_25
でもダメでした。

(from osdn.net/users/daiki2kana)
[メッセージ #72671 への返信]

松谷です。
ご確認いただき、ありがとうございます。

jstackの結果には問題が無いようなので、Fess側でプロセスを停止できなかったものと思われます。
現象が再現されるか確認いたしますので、WindowsのバージョンとJavaのバージョンをお教えいただけますでしょうか。

どうでしょうか。
再現しましたでしょうか?

(from osdn.net/users/matsutani)
[メッセージ #72879 への返信]

どうでしょうか。
再現しましたでしょうか?

ご連絡が遅れてしまい、誠に申し訳ございません。
Windows7 64bit
Fess9.1.0
Java 1.7.0_25
にて再現をいたしましたので、次回のリリースで修正いたします。

(from osdn.net/users/daiki2kana)
[メッセージ #72881 への返信]

ご連絡が遅れてしまい、誠に申し訳ございません。
Windows7 64bit
Fess9.1.0
Java 1.7.0_25
にて再現をいたしましたので、次回のリリースで修正いたします。

了解いたしました。
よろしくお願いいたします。