(from osdn.net/users/cruxy)
お世話になります。
たまにクローラープロセスが停止しない現象が起きていまして、
クローラープロセスの停止をShellで作成しようと思っております。
(Fess管理サイト->システム->システム設定->クローラープロセス 停止)
単純にKillコマンドでクローラープロセスを強制終了してもいいでしょうか?
クローラープロセスの停止に関する情報がありましたら、アドバイスをお願い致します。
以上、宜しくお願い致します。
(from osdn.net/users/cruxy)
お世話になります。
たまにクローラープロセスが停止しない現象が起きていまして、
クローラープロセスの停止をShellで作成しようと思っております。
(Fess管理サイト->システム->システム設定->クローラープロセス 停止)
単純にKillコマンドでクローラープロセスを強制終了してもいいでしょうか?
クローラープロセスの停止に関する情報がありましたら、アドバイスをお願い致します。
以上、宜しくお願い致します。
(from osdn.net/users/shinsuke)
単純にKillコマンドでクローラープロセスを強制終了してもいいでしょうか?
は
(Fess管理サイト->システム->システム設定->クローラープロセス 停止)
とほぼ同じ感じなので、killでも良いと思います。
どこで停止できていないのか知りたいのですが、
可能でしたら、Java の jps コマンドでクローラーの
プロセスに対して、jstackした結果をいただけると
助かります。
よろしくお願いいたします。
(from osdn.net/users/cruxy)
(Fess管理サイト->システム->システム設定->クローラープロセス 停止)
とほぼ同じ感じなので、killでも良いと思います。
了解致しました。ありがとうございます。
因みにクローラープロセスが2013年05月14日01時10分に実行開始され、現在まで終了されない状態です。
FESSのVersionは7.0.2です。
「webapps/fess/WEB-INF/logs/fess_crawler.out」から
「index update」は完了しましたが、「index optimize」が始まってないことを確認しています。
OutOfMemory Errorは出ていません。
jstackの結果は下記のようです。長いですが、宜しくお願い致します。
2013-08-19 17:26:53
Full thread dump OpenJDK 64-Bit Server VM (20.0-b12 mixed mode):
“Attach Listener” daemon prio=10 tid=0x00007fece4001000 nid=0x64f9 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
“Robot-20130514011023-21-5” prio=10 tid=0x00007fec8c010000 nid=0x6f53 runnable [0x00007fed04997000]
java.lang.Thread.State: RUNNABLE
at java.util.HashMap.transfer(HashMap.java:501)
at java.util.HashMap.resize(HashMap.java:480)
at java.util.HashMap.addEntry(HashMap.java:772)
at java.util.HashMap.put(HashMap.java:402)
at org.apache.pdfbox.util.TextNormalize.populateDiacHash(TextNormalize.java:98)
at org.apache.pdfbox.util.TextNormalize.<init>(TextNormalize.java:41)
at org.apache.pdfbox.util.PDFTextStripper.<init>(PDFTextStripper.java:226)
at org.seasar.robot.extractor.impl.PdfExtractor.getText(PdfExtractor.java:94)
at jp.sf.fess.transformer.AbstractFessFileTransformer.transform(AbstractFessFileTransformer.java:104)
at org.seasar.robot.processor.impl.DefaultResponseProcessor.process(DefaultResponseProcessor.java:72)
at org.seasar.robot.S2RobotThread.processResponse(S2RobotThread.java:346)
at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:182)
at java.lang.Thread.run(Thread.java:679)
“Robot-20130514011023-21-4” prio=10 tid=0x00007fec8c00e800 nid=0x6f52 waiting on condition [0x00007fed04a98000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.seasar.robot.interval.impl.DefaultIntervalController.delayAtNoUrlInQueue(DefaultIntervalController.java:89)
at org.seasar.robot.interval.impl.AbstractIntervalController.delay(AbstractIntervalController.java:44)
at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:263)
at java.lang.Thread.run(Thread.java:679)
“Robot-20130514011023-21-3” prio=10 tid=0x00007fec8c00d800 nid=0x6f51 waiting on condition [0x00007fed04b99000]
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:47)
at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:272)
at java.lang.Thread.run(Thread.java:679)
“Robot-20130514011023-21-2” prio=10 tid=0x00007fec8c00d000 nid=0x6f50 waiting on condition [0x00007fed04c9a000]
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:47)
at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:272)
at java.lang.Thread.run(Thread.java:679)
“Robot-20130514011023-21-1” prio=10 tid=0x00007fec8c005800 nid=0x6f4f waiting on condition [0x00007fed04d9b000]
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:47)
at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:272)
at java.lang.Thread.run(Thread.java:679)
“Robot-20130514011023-21” prio=10 tid=0x00007fec9400d000 nid=0x6f4e in Object.wait() [0x00007fed056a4000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000dd3ff7a0> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1203)
- locked <0x00000000dd3ff7a0> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1256)
at org.seasar.robot.S2Robot.run(S2Robot.java:229)
at java.lang.Thread.run(Thread.java:679)
“MultiThreadedHttpConnectionManager cleanup” daemon prio=10 tid=0x00007fec8c011800 nid=0x6f44 in Object.wait() [0x00007fed053a1000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000dc6282a0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133)
- locked <0x00000000dc6282a0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:149)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$ReferenceQueueThread.run(MultiThreadedHttpConnectionManager.java:1122)
“Web Crawling Process” prio=10 tid=0x00007fed10793800 nid=0x6f3f in Object.wait() [0x00007fed058a6000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000dd3ff810> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1211)
- locked <0x00000000dd3ff810> (a java.lang.Thread)
at org.seasar.robot.S2Robot.awaitTermination(S2Robot.java:117)
at jp.sf.fess.helper.WebFsIndexHelper.crawl(WebFsIndexHelper.java:510)
at jp.sf.fess.helper.WebFsIndexHelper.crawl(WebFsIndexHelper.java:134)
at jp.sf.fess.exec.Crawler$1.run(Crawler.java:359)
at java.lang.Thread.run(Thread.java:679)
“Seasar2-TimeoutManager” daemon prio=10 tid=0x00007fed106d2000 nid=0x6f3e waiting on condition [0x00007fed05bbc000]
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:679)
“Low Memory Detector” daemon prio=10 tid=0x00007fed10285000 nid=0x6f3b runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
“C2 CompilerThread1” daemon prio=10 tid=0x00007fed10282800 nid=0x6f3a waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
“C2 CompilerThread0” daemon prio=10 tid=0x00007fed10280000 nid=0x6f39 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
“Signal Dispatcher” daemon prio=10 tid=0x00007fed1027e000 nid=0x6f38 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
“Surrogate Locker Thread (Concurrent GC)” daemon prio=10 tid=0x00007fed1027c800 nid=0x6f37 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
“Finalizer” daemon prio=10 tid=0x00007fed1025e000 nid=0x6f36 in Object.wait() [0x00007fed0666e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000dc021278> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133)
- locked <0x00000000dc021278> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:149)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)
“Reference Handler” daemon prio=10 tid=0x00007fed1025c000 nid=0x6f35 in Object.wait() [0x00007fed0676f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000dc0226e0> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
- locked <0x00000000dc0226e0> (a java.lang.ref.Reference$Lock)
“main” prio=10 tid=0x00007fed10009000 nid=0x6f21 in Object.wait() [0x00007fed14653000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000dd1245d8> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1203)
- locked <0x00000000dd1245d8> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1256)
at jp.sf.fess.exec.Crawler.joinCrawlerThread(Crawler.java:517)
at jp.sf.fess.exec.Crawler.doCrawl(Crawler.java:384)
at jp.sf.fess.exec.Crawler.main(Crawler.java:244)
“VM Thread” prio=10 tid=0x00007fed10255000 nid=0x6f34 runnable
“Gang worker#0 (Parallel GC Threads)” prio=10 tid=0x00007fed1000f800 nid=0x6f22 runnable
“Gang worker#1 (Parallel GC Threads)” prio=10 tid=0x00007fed10011800 nid=0x6f23 runnable
“Gang worker#2 (Parallel GC Threads)” prio=10 tid=0x00007fed10013000 nid=0x6f24 runnable
“Gang worker#3 (Parallel GC Threads)” prio=10 tid=0x00007fed10015000 nid=0x6f25 runnable
“Gang worker#4 (Parallel GC Threads)” prio=10 tid=0x00007fed10017000 nid=0x6f26 runnable
“Gang worker#5 (Parallel GC Threads)” prio=10 tid=0x00007fed10018800 nid=0x6f27 runnable
“Gang worker#6 (Parallel GC Threads)” prio=10 tid=0x00007fed1001a800 nid=0x6f28 runnable
“Gang worker#7 (Parallel GC Threads)” prio=10 tid=0x00007fed1001c800 nid=0x6f29 runnable
“Gang worker#8 (Parallel GC Threads)” prio=10 tid=0x00007fed1001e000 nid=0x6f2a runnable
“Gang worker#9 (Parallel GC Threads)” prio=10 tid=0x00007fed10020000 nid=0x6f2b runnable
“Gang worker#10 (Parallel GC Threads)” prio=10 tid=0x00007fed10022000 nid=0x6f2c runnable
“Gang worker#11 (Parallel GC Threads)” prio=10 tid=0x00007fed10024000 nid=0x6f2d runnable
“Gang worker#12 (Parallel GC Threads)” prio=10 tid=0x00007fed10025800 nid=0x6f2e runnable
“Concurrent Mark-Sweep GC Thread” prio=10 tid=0x00007fed10196800 nid=0x6f33 runnable
“Gang worker#0 (Parallel CMS Threads)” prio=10 tid=0x00007fed1018e800 nid=0x6f2f runnable
“Gang worker#1 (Parallel CMS Threads)” prio=10 tid=0x00007fed10190800 nid=0x6f30 runnable
“Gang worker#2 (Parallel CMS Threads)” prio=10 tid=0x00007fed10192000 nid=0x6f31 runnable
“Gang worker#3 (Parallel CMS Threads)” prio=10 tid=0x00007fed10194000 nid=0x6f32 runnable
“VM Periodic Task Thread” prio=10 tid=0x00007fed10290000 nid=0x6f3c waiting on condition
JNI global references: 1128
(from osdn.net/users/shinsuke)
貴重な情報をありがとうございます。
毎回、pdfboxでそうなるとなると
https://issues.apache.org/jira/browse/PDFBOX-1622
の問題が怪しい気がします。この場合、次のリリースのpdfboxに差し替えるか
pdfboxをビルドして差し替えるしか、ないような気もします。
でも、もしかしたら、fess.diconとかに
“UTF-8”
と書いておけば回避可能かもしれません。(動作確認はしてませんが…)
(from osdn.net/users/shinsuke)
よく見たら、毎回、TextNormalizeをnewされてコンストラクタでstaticのHashMapをいじるところが問題なので、dicon案はダメでした…。すいません。
やっぱり次の1.8.3以降か、svnから取ってきてビルドしたもので差し替えしかないと思います。
(from osdn.net/users/cruxy)
クローラープロセスが停止しない現象ですが、何カ月に1回ぐらいの頻度で起きていまして、
その度、クローラープロセスの停止さえ自動で出来ればいいかと思っておりまして、
killコマンドを利用してクローラープロセスの停止のShellを作成致しました。
ご対応とアドバイス、誠にありがとうございました。
© 2020. All Rights Reserved - CodeLibs, Inc.