Hatena::ブログ(Diary)

適宜覚書はてな異本 このページをアンテナに追加 RSSフィード



dacs(@daccot) - Twilog
 RSSリーダーで購読する
カレンダー
カスタム検索
 | 

2006/11/25(土)

[]大量item送付時にPlaggerのPublish::Gmailでエラー発生して困った 01:56 大量item送付時にPlaggerのPublish::Gmailでエラー発生して困ったを含むブックマーク 大量item送付時にPlaggerのPublish::Gmailでエラー発生して困ったのブックマークコメント

本対応Plaggerを0.7.17(2006/12/5版)以降で反映済みで古新聞化しました。

一昨日plaggerをインストールしてlivedoor2gmail.yamlで正常動作した。しかし、問題が発生した。

Plagger::Plugin::Subscription::LivedoorReader [info] You have 200 unread item(s)
 on livedoor Reader.
Plagger::Plugin::Publish::Gmail [info] Sending void GraphicWizardsLair( void );
// to fugafuga@gmail.com
Error: Timeout at C:/Perl/site/lib/Plagger/Plugin/Publish/Gmail.pm line 246
Error: Timeout at C:/Perl/site/lib/Plagger/Plugin/Publish/Gmail.pm line 246
Error: Timeout at C:/Perl/site/lib/Plagger/Plugin/Publish/Gmail.pm line 246
Error: Timeout at C:/Perl/site/lib/Plagger/Plugin/Publish/Gmail.pm line 246

新規にLivedoorReaderに追加したフィードを送信しようとするとTimeoutエラーになってしまう。どうもこの問題は特定のサイトのフィードの問題ではなくアイテム数の問題のようだ。上記例は200件だが、160件くらいの複数フィード累計アイテム数でも発生した。5件くらいのアイテム数なら何も問題ない。

閾値がどこら辺か分からないが、「送信量が多い」->「送信負荷がかかる」->「Timeoutの閾値を越える」->「エラー発生」という感じなのだろうと思う。もし、そうであるなら送信量を減らすために実行間隔を狭めるか、Timeoutの閾値を大きくするかが解決策と考える。前者は妥協した感じであまり嬉しくないので、後者での解決を図ろうとした。Gmail.pmの246行目というと以下のように書かれている。

244 @MIME::Lite::SMTP::TLS::ISA = qw( Net::SMTP::TLS );
245 sub MIME::Lite::SMTP::TLS::print { shift->datasend(@_) }

怪しいと思ったのは、C:\Perl\site\lib\MIME\Lite.pmの226行目にある以下の指定値だ。

224    ### Do something like this in your 'main':
225    if ($I_DONT_HAVE_SENDMAIL) {
226       MIME::Lite->send('smtp', "smtp.myisp.net", Timeout=>60);
227    }

試しにこんなことをしてみたが、効果なし。

224    ### Do something like this in your 'main':
225    if ($I_DONT_HAVE_SENDMAIL) {
226       MIME::Lite->send('smtp', "smtp.myisp.net", Timeout=>300);
227  # MIME::Lite->send('smtp', "smtp.myisp.net", Timeout=>60);
227    }

………ここはただのperldocの部分だな。相当激烈にアホなことをした。顔から火が出そうだが自爆スキーなので経緯を晒しておく。にしても、どこで指定してるんだ。うーん。C:\Perl\site\lib\Net\SMTP\TLS.pmに余裕のあるTimeout値を与えれば何とかなるのかもとか思うがサッパリ分からん。検索しても同じようなことで困ったなんて話は引っかからないしなあ。

我慢するしかないのか。orz

Gmail.pmの中をジーっと訳分からんなり見てみると、109行目にある

$msg->send_by_smtp_tls(@{ $self->{tls_args} });

で、SMTP_TLSでの送信に関する引数を与えている。send_by_smtp_tlsは204行目に# hack MIME::Lite to support TLS Authenticationとある。MIME::LiteにTLS認証を出来るようNet::SMTP::TLSと組み合わせて拡張しているっぽい。tls_argsをいじってみることにして108行目を追加してこう書いてみた。

103            $self->{tls_args} = [
104                $route->{host},
105                User     => $route->{username},
106                Password => $route->{password},
107                Port     => $route->{port} || 587,
108                Timeout  => $route->{timeout} || 300,
109            ];

上の行の猿真似でtimeout値を300秒とした。お。200件item送ってもエラー出なくなったぞ。これでええのんか?うーん。微妙。問題が起きたとき外せるように覚書しとこう。

真似する人はいないと思うが注意書き。訳分からないのに試しでやっているので、上記を真似して困ったことが起こっても責任持てないよ。多分、108行目を削除するだけで元に戻ると思うけど…。

関連かもしれないリソース

蛇足

ここまででとりあえずの問題を解決したと安心していたらこんなエラーが表示された。

Plagger::Plugin::Subscription::LivedoorReader [info] You have 11 unread item(s)
on livedoor Reader.
JSON::Syck parser (line 12, column 15): syntax error at C:/Perl/site/lib/Plagger
/Plugin/Subscription/LivedoorReader.pm line 154.

うわー。またかよう。ご勘弁願いますよ、ホント…とか思って、やおらLivedoorReader.pmの該当個所を見るもサッパリ分からん。

153    if ($self->{mech}->status == 200) {
154        return JSON::Syck::Load($self->{mech}->content);
155    }

仕方ないのでLivedoorReaderを直接ブラウザで見に行ったら、諸般の事情でメンテナンス中とのこと。plagger側の問題じゃなくて良かった。

接続サービス サーバメンテナンスのお知らせ

2006年11月22日

平素より、livedoor 接続サービスをご利用くださいまして、誠にありがとうございます。下記の日程で、サーバのメンテナンスを実施させていただくため一部のサービスをご利用いただけなくなります。ご迷惑をお掛けいたしますが、ご理解とご協力の程、よろしくお願い申し上げます。

  • メンテナンス開始日時   2006年11月25日(土) 21:00
  • メンテナンス終了予定日時 2006年11月26日(日) 05:00 予定

livedoor インフォメーション

ただまあ、あれ。HTTPのレスポンスが200の場合リクエストOKとしてJSON::Syck::Loadをいきなりしてしまうのはまずいかもしれない。サービスとしてOKかどうかをもう一段チェックするような作りにしないとこういう状況には対応できない。まあ、こういう状況自体そうそう無いとは思うが…。どうしたものかな?

ありゃ?(2006/12/5追記)

 * Publish::Gmail: added timeout config for mailroute when used with SMTP-TLS
*

で、gmail.pmの中身を見たら、このまま反映してる。公式?ええのんか?まあ、ダメだったらまたそのとき直せばいいし*1。300にこれといった確たる根拠無いけど、動くまでに何回か書き直して動作を試したので、多分妥当とは思う。今のとここの問題は再発していないし…(^^;;

ということで、この記事通りやるよりPlaggerを0.7.17以降にした方がいいです。他にもあれこれ変わっているし。

*1:後戻りできる修正なら、とりあえず行っとけで

トラックバック - http://d.hatena.ne.jp/dacs/20061125/1164387408
 | 
NECとCA Technologies、クラウドによる認証・セキュリティソリューションで協業 - クラウド Watch
NECとCA Technologies、クラウドによる認証・セキュリティソリューションで協業クラウド Watch日本電気株式会社(以下、NEC)とCA Technologies(以下、CA)は9日、クラウドを利用した認証・セキュリティソリューション分野で協業すると発表した。CAの提供するソフトウェア
ZDNet Japanセキュリティフォーラム--敵を知り、己を知らば、百戦危うからず - CNET Japan
ZDNet Japanセキュリティフォーラム--敵を知り、己を知らば、百戦危うからずCNET Japan朝日インタラクティブは2月22日、都内で「ZDNet Japanセキュリティフォーラム〜すぐに始めるサイバー攻撃対策〜」を開催する。企業を取り巻く脅威の深刻度が増しており、標的型攻撃と重要インフラ
世界のセキュリティ・ラボから 公式Androidマーケットから配信される「Counterclank」マルウエア - ITpro
世界のセキュリティ・ラボから 公式Androidマーケットから配信される「Counterclank」マルウエアITproただソフォスによれば、この問題は少なくとも2年ほど前から知られていた。2010年3月に、カナダのバンクーバーで開催されたセキュリティカンファレンス「CanSecWest」で、ドイツ
キングソフト、無償セキュリティ対策ソフト「KINGSOFT Internet Security 2012」 - 窓の杜
キングソフト、無償セキュリティ対策ソフト「KINGSOFT Internet Security 2012」窓の杜キングソフト(株)は9日、無料で使えるセキュリティ対策ソフトの最新版「KINGSOFT Internet Security 2012」を公開した。Windows XP/Vista/7および
モバイル・セキュリティの最新事情 - CIO
モバイル・セキュリティの最新事情CIO企業データを保護し、CIOの不安を解消するモバイル・セキュリティ対策ツールが急速な進化を遂げつつある。 調査会社の米国ガートナーによると、これまでエンタープライズ向けモバイル・アプリケーションはコンシューマー向けに比べて開発ペースが遅かったという。
Microsoft、9件の月例セキュリティ情報の公開を予告 - ITmedia
Microsoft、9件の月例セキュリティ情報の公開を予告ITmedia2月の月例セキュリティ情報は日本時間の15日に公開予定。9件のうち4件が「緊急」となる。 米Microsoftは2月の月例セキュリティ情報9件を米国時間の14日(日本時間15日)に公開する。今月はWindowsやInternet
「Google Chrome 17」安定版リリース--セキュリティと速度を改善 - CNET Japan
CNET Japan「Google Chrome 17」安定版リリース--セキュリティと速度を改善CNET Japan「Windows」「Mac」、Linux、「Chrome Frame」向けのChrome 17安定版には、多数の新しい拡張APIとセキュリティ修正が含まれている。 Chrome 17
イー・アクセス、Android向け「EMセキュリティ」に機能を追加 - ITmedia
イー・アクセス、Android向け「EMセキュリティ」に機能を追加ITmediaイー・アクセスは、同社スマホユーザー向けのセキュリティサービス「EMセキュリティ for Android powered by Symantec」に新機能を追加する。また、盗難や紛失に備える「アンチセフト」の提供も始める
「情報セキュリティガバナンス協議会」が発足、知識共有や啓蒙活動を実施 - ITpro
「情報セキュリティガバナンス協議会」が発足、知識共有や啓蒙活動を実施ITpro“情報セキュリティガバナンス”(情報セキュリティ対策のあり方を取り決めて統制する活動)の普及と導入支援を目的とした業界団体「情報セキュリティガバナンス協議会」(仮称)は2012年2月8日、見込み会員であるユーザー企業/ベン
ハッカー集団、アップル委託先企業フォックスコンの受注サイトを... - コンピュータワールド
コンピュータワールドハッカー集団、アップル委託先企業フォックスコンの受注サイトを...コンピュータワールドFoxconnは攻撃に対するコメントを拒否し、「内部のネットワークセキュリティに関する発言はしない」と述べた。しかし同日午前、Fosconnの顧客が発注のために使用する2つのサイトはダウンしてい
-My Google Profile
最新トラックバック一覧
あわせて読みたいブログパーツ