はてなBookmarkに登録

[Plagger] セグメンテーション違反解決

「セグメンテーション違反」が出るようになってしまったPlaggerですが、ようやく復旧しました。
分かってみると「なんでもっと早く気付かなかったんだろう」とも思えますが…、備忘録代わりに書いておきます。

Webで調べてみたら、Filter::Dedupedのデータベースが怪しそう
「plagger segmentation fault」でググってみると、Filter::Dedupedのデータベースが壊れていたりすると、セグメンテーション違反が起きる場合がある、ということが分かりました。早速、Deduped.dbを探して削除してみたのですが…、残念ながら相変わらずセグメンテーション違反が発生してしまいます。
もうちょっと気合いを入れて調べ直します。

問題が発生するのはBundle::Planetだけみたい
色々と試していくうちに、Bundle::Planetを使っているとセグメンテーション違反が発生することが分かってきました。試しにBundle::Planetとなっているところを、Publish::Feedとかに変えてみると、問題なく動いてくれます。Bundle::Planetのソースを見てみることにします。

HTML::Tidyが怪しい
Plugin/Bundle/Planet.pmを見てみます。中で次のモジュールをロードしています。
 Filter::StripTagsFromTitle
 Filter::HTMLTidy (if HTML::Tidy is available)
 Filter::HTMLScrubber
 Filter::GuessTimeZoneByDomain
 SmartFeed::All
 Publish::Planet
 Publish::Feed
 Publish::OPML
 Publish::FOAFRoll

これらのモジュールをロードしているところを、一つずつコメントアウトして試して見ると…、
 Filter::HTMLTidy (if HTML::Tidy is available)
をロードしないようにすると、無事動くことが分かりました。

grepしてみると、Filter::HTMLTidyを使っているのはBundle::Planetだけのようです。HTML::Tidyを削除してしまえば良いのかもしれませんが、とりあえずFilter::HTMLTidyをロードする所をコメントアウトするだけで様子を見ることにしています。

今回の教訓:無闇にモジュールの削除/再インストールをせず、まずは原因の切り分けを行いましょう。

って、当たり前のことですね…。
投稿者 Izumi : 21:38 | PC / Net

トラックバック

このエントリーのトラックバックURL:
http://www.simazaki.com/~izumi/cgi-bin/tt-cgi/tt_tb.cgi/494

コメント

コメントしてください




保存しますか? はいいいえ


 
< 2007年8月 >
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
サイト内検索
Recent Comments
Recent Trackback
リンクリスト