[fess-user 429] Re: エラーでクロールが停止。何かお気づきの点あれば...

Back to archive index

Masayuki Shibata mshib****@shima*****
2011年 3月 10日 (木) 11:19:17 JST


柴田@亀岡市です。

とりあえず前半だけ回答します。

閉鎖された当該サイトの web.xml 内の

<filter>
   <filter-name>UrlRewriteFilter</filter-name>
   <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
   <filter-name>UrlRewriteFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

...から、同じフォルダにある urlrewrite.xml (以下) を呼んでます。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
        "http://tuckey.org/res/dtds/urlrewrite3.2.dtd">
<urlrewrite>
    <rule>
        <from>/.*</from>
        <to type="redirect">/redirect/sorry.html</to>
    </rule>
</urlrewrite>

Apache の mod_rewrite 相当の処理ということで、どこかのサイトを
にあったものを取ってきて入れたものです。

Fess からは、このサイトにあるファイルへのリンクがずらっとある
HTML ファイルからリンクを辿ってアクセスするものの、上記の処理
にて /redirect/sorry.html が返ってくるようになっています。

手動で辿った範囲では、正しく「閉鎖中です」と言うページが表示さ
れますので、私もこれが原因だとは思っておりませんでした。

切り分けるのに、巡回先のウェブ設定を個別に無効にしてクロールし
ていて分かった次第です。

このサイトへのリンクは、全部同じ条件で返ってきますので、リンク
先のファイルタイプなどには影響は受けておらず、閉鎖したこと自体
が原因だと思います。

----- Original Message ----- 
From: "Shinsuke Sugaya" <shins****@yahoo*****>
To: <fess-****@lists*****>
Sent: Thursday, March 10, 2011 10:27 AM
Subject: [fess-user 428] Re:エラーでクロールが停止。何かお気づきの点あれば...


> 菅谷です。
>
> 確認していただきありがとうございます。
>
> もしご存知でしたら教えていただきたいのですが
> 閉鎖ページはどのように飛ばされるのでしょうか?
> 301 などでしょうか?飛ばされたとしても、飛ばされた
> ページがコンテンツを返してきちんと終了してくれて
> いれば、特に問題なく処理が進む気がしています。
>
>> 後者はトラッカーのチケット #22504 にすでに要望が上がってい
>> るようですので、それはそれでお待ちするとして...
>
> すいません、早めに対応するようにします・・・。
>
>> fess_crawler.out が、こちらで出力されていない原因って、何かおわかり
>> になりませんでしょうか?
>
> こちらでそれを再現する時間が取れていない状況で
> 申し訳ありませんが、たとえば、
> <property name="logFilePath">"c:\fess_crawler.out"</property>
> のように絶対パスで指定した場合はいかがでしょうか?
> また、Fess は c:\Program Files のようにスペースが
> 含まれるパスなどに配置されていたりしますでしょうか?
>
> よろしくお願いいたします。
>
> shinsuke
>
>
>
>
> 2011年3月10日9:35 Masayuki Shibata <mshib****@shima*****>:
>> 柴田@亀岡市です。
>>
>> クロール先の問題ということで調査しましたところ、巡回先のサーバーが
>> 1つ閉鎖していまして、そこへのインデックスになっているページからの
>> リンクがことごとく「閉鎖しました」のページに飛ばされていました。
>>
>> つまりリンクして飛ぼうとした先とは違う URL のページが戻ってきており、
>> それが大量にありました。
>>
>> そのサイトへの巡回を止めたところ正常にはなりましたが、サイト閉鎖な
>> どはイレギュラーというより、実社会で今後も起こりそうな話ですので、そ
>> こでエラーになりそこから先のインデックス更新が止まるというのは今後
>> も発生しそうに思いました。
>>
>> 止まらずにそのまま進めるか、セッション情報の CrawlerStatus = F に
>> なった時点で、管理者にメールが飛ぶなどの機能があるとよいかと思い
>> ますが、後者はトラッカーのチケット #22504 にすでに要望が上がってい
>> るようですので、それはそれでお待ちするとして...
>>
>> fess_crawler.out が、こちらで出力されていない原因って、何かおわかり
>> になりませんでしょうか?
>>
>> 止まったこと自体はメールで通知されたとしても、その原因究明がかな
>> り難しくて、今回のものもほとんど偶然にわかったような次第です。
>>
>> fess_crawler.out があったからと言って、こちらにその解読ができる力が
>> あるわけでもないのですが、それがライブラリのバグのようなものなら、
>> わからないのも仕方ないとしても、サイト閉鎖くらいは掴める勘所は押さ
>> えておかないと辛そうですので。
>>
>> ----- Original Message -----
>> From: "Shinsuke Sugaya" <shins****@yahoo*****>
>> To: <fess-****@lists*****>
>> Sent: Wednesday, March 09, 2011 8:51 AM
>> Subject: [fess-user 426] Re:エラーでクロールが停止。何かお気づきの点あれば...
>>
>>
>>> 菅谷です。
>>>
>>> 情報をありがとうございます。
>>>
>>>> 2011-03-02 20:53:51,390 [IndexUpdater] INFO 
>>>>  jp.sf.fess.solr.IndexUpdater -
>>>> The
>>>> number of a crawled document is 0. The processing size is 0. The 
>>>> execution
>>>> time
>>>> is 15ms.
>>>
>>> これはSolrへドキュメントを送るスレッドになりますが、
>>> これが送信待ちのドキュメントを取りに行き、上限に
>>> 達するまで試したが空なので終了したと思われます。
>>> これが起こりそうな原因としては、クロールして、
>>> 返ってこないで待ちになるようなスレッドがいると
>>> 起こる場合があると思います。Java自体のバグ(?)で
>>> zipがIO待ち状態になるような現象は以前に観測した
>>> ことがあります(まれな問題な気もしますが)。この手のは
>>> Fessレベルではどうしようもないので、そのようなファイルは
>>> クロール対象から除外する必要があります。現状では
>>> デバッグログなどにして、返ってこないクロールを
>>> 見つけるしかないと思います(または1スレッドだけの
>>> クロールにして止まったものが犯人かもしれませんが)。
>>>
>>> shinsuke
>>>
>>>
>>>
>>>
>>> 2011年3月7日19:32 Masayuki Shibata <mshib****@shima*****>:
>>>> 柴田@亀岡市です。
>>>>
>>>> お返事遅くなりました。故あってメーラーを換えたのですが、少し思い通りにな
>>>> らなくて、振り分けたメールがしばらく行方不明でした。
>>>>
>>>>> fess.dicon の systemHelper に以下が
>>>>> あるでしょうか?
>>>>
>>>> ありますが、ログがどこにあるかがわかりません。
>>>>
>>>> いただいたメールが行方不明中にこちらでゴソゴソやっておりました。
>>>>
>>>> ・fess サービス再起動しても状況変わりません。
>>>> ・大体 1400 くらいインデックス作ったあたりで終わります。
>>>> ・ご報告したログの少し前に以下のような特徴的なログが必ず出ています。
>>>>
>>>> 2011-03-02 20:53:51,390 [IndexUpdater] INFO 
>>>>  jp.sf.fess.solr.IndexUpdater -
>>>> The
>>>> number of a crawled document is 0. The processing size is 0. The 
>>>> execution
>>>> time
>>>> is 15ms.
>>>> 2011-03-02 20:54:51,375 [IndexUpdater] INFO 
>>>>  jp.sf.fess.solr.IndexUpdater -
>>>> The
>>>> number of a crawled document is 0. The processing size is 0. The 
>>>> execution
>>>> time
>>>> is 0ms.
>>>> 2011-03-02 20:55:51,375 [IndexUpdater] INFO 
>>>>  jp.sf.fess.solr.IndexUpdater -
>>>> The
>>>> number of a crawled document is 0. The processing size is 0. The 
>>>> execution
>>>> time
>>>> is 0ms.
>>>>
>>>> 1分間隔で、execution time が 0ms. か 15ms. (2:1 くらいの割合で出現) 。
>>>>
>>>> この状態が1時間ばかり続いて、最終的に
>>>>
>>>> 2011-03-02 20:56:51,375 [IndexUpdater] INFO 
>>>>  jp.sf.fess.solr.IndexUpdater -
>>>> Terminating indexUpdater. emptyListCount is over 60.
>>>>
>>>> ...を出して終了処理 (index update time や crawling time の記録) に入って
>>>> います。
>>>>
>>>>
>>>> ----- Original Message -----
>>>> From: "Shinsuke Sugaya" <shins****@yahoo*****>
>>>> To: <fess-****@lists*****>
>>>> Sent: Thursday, March 03, 2011 10:41 PM
>>>> Subject: [fess-user 424] Re:エラーでクロールが停止。何かお気づきの点あれば...
>>>>
>>>>
>>>>> 菅谷です。
>>>>>
>>>>> デフォルトでは出ていると思いますが、
>>>>> fess.dicon の systemHelper に以下が
>>>>> あるでしょうか?
>>>>>
>>>>> <property
>>>>> name="logFilePath">@System @ getProperty("fess.log.file").replaceAll(".out",
>>>>> "_crawler.out")</property>
>>>>>
>>>>> shinsuke
>>>>>
>>>>> 2011年3月3日11:48 Masayuki Shibata <mshib****@shima*****>:
>>>>>> 柴田@亀岡市です。
>>>>>>
>>>>>> fess_crawler.out が見あたらないのですが、どこかの設定を変えると出力
>>>>>> されるとかでしょうか?
>>>>>>
>>>>>> ----- Original Message -----
>>>>>> From: "Shinsuke Sugaya" <shins****@yahoo*****>
>>>>>> To: <fess-****@lists*****>
>>>>>> Sent: Thursday, March 03, 2011 10:59 AM
>>>>>> Subject: [fess-user 421] Re:エラーでクロールが停止。何かお気づきの点あれば...
>>>>>>
>>>>>>
>>>>>>> 菅谷です。
>>>>>>>
>>>>>>> そのログからすると、ウェブアクセスのコネクションプールが
>>>>>>> 終了してしまっているため、停止していると思われます。
>>>>>>> クロールに関するログは fess_crawler.out の方になるので
>>>>>>> そこに Exception はないでしょうか?
>>>>>>>
>>>>>>>> WARN  jp.sf.fess.helper.RobotLogHelper - Failed to store a failure 
>>>>>>>> url.
>>>>>>>
>>>>>>> 上記が起きる一番初めの時間帯付近の Exception が
>>>>>>> どのようになっているかが気になります。
>>>>>>>
>>>>>>> よろしくお願いいたします。
>>>>>>>
>>>>>>> shinsuke
>>>>>>>
>>>>>>>
>>>>>>> 2011年3月3日10:17 Masayuki Shibata <mshib****@shima*****>:
>>>>>>>> 柴田@亀岡市です。
>>>>>>>>
>>>>>>>> 現在 Fess 4.0.0 on Windows Server 2003 です。
>>>>>>>>
>>>>>>>> しばらく問題なく動いていたのですが、ここ何回かエラーが出てクロールが
>>>>>>>> 途中停止するようになっていました。
>>>>>>>>
>>>>>>>> 19:30 クロール開始で、毎度 21:00 の1〜2分前に止まっていますので、
>>>>>>>> こちらの環境で何かそのあたりにあるのかも知れないのですが、犯人がわ
>>>>>>>> からずにおります。
>>>>>>>>
>>>>>>>> 以下のような fess.out ログを吐いて止まっているのですが、何かお気づき
>>>>>>>> の点ありましたらご教示いただけるとありがたいです。
>>>>>>>>
>>>>>>>> WARN  jp.sf.fess.helper.RobotLogHelper - Failed to store a failure 
>>>>>>>> url.
>>>>>>>>    ...と
>>>>>>>> ERROR org.seasar.robot.helper.impl.LogHelperImpl - Crawling Exception 
>>>>>>>> at
>>>>>>>> http://...............
>>>>>>>>    ...の組み合わせで何回かワーニング+エラーを繰り返した後、最後に
>>>>>>>> 止まっています。
>>>>>>>>
>>>>>>>> 同じファイルのところで止まっているというわけでもないようです。
>>>>>>>>
>>>>>>>>
>>>>>>>> 2011-02-26 20:58:20,718 [Robot-20110226193003-7-1] WARN
>>>>>>>> jp.sf.fess.helper.RobotLogHelper - Failed to store a failure url.
>>>>>>>> java.lang.NullPointerException
>>>>>>>>  at
>>>>>>>> org.seasar.framework.container.impl.ComponentDefImpl.getComponentDeployer(ComponentDefImpl.java:328)
>>>>>>>>  at
>>>>>>>> org.seasar.framework.container.impl.ComponentDefImpl.getComponent(ComponentDefImpl.java:111)
>>>>>>>>  at
>>>>>>>> org.seasar.framework.container.impl.S2ContainerImpl.getComponent(S2ContainerImpl.java:129)
>>>>>>>>  at
>>>>>>>> org.seasar.framework.container.SingletonS2Container.getComponent(SingletonS2Container.java:43)
>>>>>>>>  at
>>>>>>>> jp.sf.fess.helper.RobotLogHelper.getCrawlingConfig(RobotLogHelper.java:134)
>>>>>>>>  at
>>>>>>>> jp.sf.fess.helper.RobotLogHelper.storeFailureUrl(RobotLogHelper.java:88)
>>>>>>>>  at jp.sf.fess.helper.RobotLogHelper.log(RobotLogHelper.java:69)
>>>>>>>>  at org.seasar.robot.S2RobotThread.log(S2RobotThread.java:107)
>>>>>>>>  at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:229)
>>>>>>>>  at java.lang.Thread.run(Thread.java:619)
>>>>>>>> 2011-02-26 20:58:20,718 [Robot-20110226193003-7-1] ERROR
>>>>>>>> org.seasar.robot.helper.impl.LogHelperImpl - Crawling Exception at
>>>>>>>> http://...............
>>>>>>>> org.seasar.robot.RobotSystemException: Failed to access
>>>>>>>> http://...............
>>>>>>>>  at
>>>>>>>> org.seasar.robot.client.http.HcHttpClient.doHttpMethod(HcHttpClient.java:679)
>>>>>>>>  at
>>>>>>>> org.seasar.robot.client.http.HcHttpClient.doGet(HcHttpClient.java:450)
>>>>>>>>  at org.seasar.robot.S2RobotThread.run(S2RobotThread.java:167)
>>>>>>>>  at java.lang.Thread.run(Thread.java:619)
>>>>>>>> Caused by: java.lang.IllegalStateException: Connection pool shut 
>>>>>>>> down.
>>>>>>>>  at
>>>>>>>> org.apache.http.impl.conn.tsccm.ConnPoolByRoute.getEntryBlocking(ConnPoolByRoute.java:300)
>>>>>>>>  at
>>>>>>>> org.apache.http.impl.conn.tsccm.ConnPoolByRoute$1.getPoolEntry(ConnPoolByRoute.java:254)
>>>>>>>>  at
>>>>>>>> org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager$1.getConnection(ThreadSafeClientConnManager.java:203)
>>>>>>>>  at
>>>>>>>> org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:392)
>>>>>>>>  at
>>>>>>>> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:694)
>>>>>>>>  at
>>>>>>>> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:625)
>>>>>>>>  at
>>>>>>>> org.seasar.robot.client.http.HcHttpClient.doHttpMethod(HcHttpClient.java:510)
>>>>>>>>  ... 3 more
>>>>>>>> 2011-02-26 20:58:26,015 [chronos-pool-3-thread-5] INFO
>>>>>>>> jp.sf.fess.helper.SystemHelper - Crawler: Exit Code=0 - Crawler 
>>>>>>>> Process
>>>>>>>> Output:
>>>>>>>> Processed: C:\fess-server\webapps\fess\WEB-INF\db\robot.h2.db
>>>>>>>> Processed: 
>>>>>>>> C:\fess-server\webapps\fess\WEB-INF\db\robot.lobs.db\1.lobs.db
>>>>>>>> Processed: 
>>>>>>>> C:\fess-server\webapps\fess\WEB-INF\db\robot.lobs.db\2.lobs.db
>>>>>>>> Processed: C:\fess-server\webapps\fess\WEB-INF\db\robot.lobs.db
>>>>>>>>
>>>>>>>> 2011-02-26 20:58:26,015 [chronos-pool-3-thread-5] WARN
>>>>>>>> jp.sf.fess.helper.SystemHelper - Could not delete a temp dir:
>>>>>>>> C:\fess-server\temp\fessTmpDir_20110226193003
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Fess-user mailing list
>>>>>>>> Fess-****@lists*****
>>>>>>>> http://lists.sourceforge.jp/mailman/listinfo/fess-user
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Fess-user mailing list
>>>>>>> Fess-****@lists*****
>>>>>>> http://lists.sourceforge.jp/mailman/listinfo/fess-user
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Fess-user mailing list
>>>>>> Fess-****@lists*****
>>>>>> http://lists.sourceforge.jp/mailman/listinfo/fess-user
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Fess-user mailing list
>>>>> Fess-****@lists*****
>>>>> http://lists.sourceforge.jp/mailman/listinfo/fess-user
>>>>>
>>>>
>>>> _______________________________________________
>>>> Fess-user mailing list
>>>> Fess-****@lists*****
>>>> http://lists.sourceforge.jp/mailman/listinfo/fess-user
>>>>
>>>
>>> _______________________________________________
>>> Fess-user mailing list
>>> Fess-****@lists*****
>>> http://lists.sourceforge.jp/mailman/listinfo/fess-user
>>>
>>
>> _______________________________________________
>> Fess-user mailing list
>> Fess-****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/fess-user
>>
>
> _______________________________________________
> Fess-user mailing list
> Fess-****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/fess-user
> 




Fess-user メーリングリストの案内
Back to archive index