Download
Magazine
Develop
Account
Download
Magazine
Develop
Login
Forgot Account/Password
Create Account
Language
Help
Language
Help
×
Login
Login Name
Password
×
Forgot Account/Password
Category:
Software
People
PersonalForge
Magazine
Wiki
Search
OSDN
>
Find Software
>
Communications
>
Email
>
Filters
>
bsfilter
>
Forums
>
users
>
POPモードでの CPUループ
bsfilter
Description
Project Summary
Developer Dashboard
Developers
Image Gallery
List of RSS Feeds
Activity
Statistics
History
Downloads
List of Releases
Stats
Source Code
Code Repository list
CVS
View Repository
Ticket
Ticket List
Milestone List
Type List
Component List
List of frequently used tickets/RSS
Submit New Ticket
Documents
FrontPage
Title index
Recent changes
Communication
List of Forums
users (627)
Forums:
users
(Thread #12233)
Return to Thread list
RSS
POPモードでの CPUループ (2006-09-05 11:23 by
Anonymous
#24716)
Reply
Create ticket
水口です。 お世話になります。
以前から、POPモードの bsfilter が特定条件で CPUを使い切ってループする現象が起っていたのですが、材料が揃ってきました。 私はPOPを知らないこともあり、POPクライアント側での対応可否は判りませんが報告させて頂きます。
使用する bsfilter は、bsfilter-1.0.14.tgz に含まれる bsfilterw.exe です。
環境は、WindowsXP SP2 Pro で Meadow-3.00-dev + Mew version 5.1.50 を使用しています。
発生条件は、以下全項を満足する場合です。
1 POPサーバー上の「BODYの無いヘッダのみのメッセージ」を RETR する。
2 Symantec AntiVirus の 「インターネット電子メール Auto-Protect」が ON である。 (Symantec AntiVirus は旧ノートン製品が名称変更されたもので、Symantecの200Xシリーズとは全く別物)
3 POPサーバーにもサーバーソフトウェアの種類や設定といった条件がある模様。(実際、POPサーバーの設定変更で解決したケースもあります。)
これだけでは資料が少いので、少しだけ調べてみました。
Mew version 5.1.50 で、bsfilter を介さずに POPサーバーに直接接続して RETR させてみました。
すると、 *Mew debug* バッファに以下を記録してエラーになります。
*Mew debug*> <=SEND=>
*Mew debug*> RETR 300
*Mew debug*>
*Mew debug*> <RETR>
*Mew debug*> +OK 1162 octets follow.
*Mew debug*>
*Mew debug*>
*Mew debug*> <POP SENTINEL>
*Mew debug*> connection broken by remote peer
「インターネット電子メール Auto-Protect」を OFF にすると、Mew から直接でも bsfilter 経由でも RETR に成功するのですが、後者について Mew がローカルディスクに保存したファイルを見ると、以下の様でした。
1 行数20、バイトサイズ1142、LF改行。 (CRLF改行に変換すると、上記のサーバー応答と同じ 1162バイト)
2 ファイル末尾の改行は 1個のみ。 (素人考えですが、BODY無メッセージの末尾はヘッダ末尾なんだから 2個の改行がある方が自然と感じます)
というところなんですが、いかがなものでしょうか? 他に、調べることはありますでしょうか?
Reply to #24716
×
Subject
Body
Reply To Message #24716 > 水口です。 お世話になります。 > > 以前から、POPモードの bsfilter が特定条件で CPUを使い切ってループする現象が起っていたのですが、材料が揃ってきました。 私はPOPを知らないこともあり、POPクライアント側での対応可否は判りませんが報告させて頂きます。 > > > 使用する bsfilter は、bsfilter-1.0.14.tgz に含まれる bsfilterw.exe です。 > > 環境は、WindowsXP SP2 Pro で Meadow-3.00-dev + Mew version 5.1.50 を使用しています。 > > 発生条件は、以下全項を満足する場合です。 > > 1 POPサーバー上の「BODYの無いヘッダのみのメッセージ」を RETR する。 > > 2 Symantec AntiVirus の 「インターネット電子メール Auto-Protect」が ON である。 (Symantec AntiVirus は旧ノートン製品が名称変更されたもので、Symantecの200Xシリーズとは全く別物) > > 3 POPサーバーにもサーバーソフトウェアの種類や設定といった条件がある模様。(実際、POPサーバーの設定変更で解決したケースもあります。) > > > > これだけでは資料が少いので、少しだけ調べてみました。 > > > Mew version 5.1.50 で、bsfilter を介さずに POPサーバーに直接接続して RETR させてみました。 > > すると、 *Mew debug* バッファに以下を記録してエラーになります。 > > *Mew debug*> <=SEND=> > *Mew debug*> RETR 300 > *Mew debug*> > *Mew debug*> <RETR> > *Mew debug*> +OK 1162 octets follow. > *Mew debug*> > *Mew debug*> > *Mew debug*> <POP SENTINEL> > *Mew debug*> connection broken by remote peer > > > > 「インターネット電子メール Auto-Protect」を OFF にすると、Mew から直接でも bsfilter 経由でも RETR に成功するのですが、後者について Mew がローカルディスクに保存したファイルを見ると、以下の様でした。 > > 1 行数20、バイトサイズ1142、LF改行。 (CRLF改行に変換すると、上記のサーバー応答と同じ 1162バイト) > > 2 ファイル末尾の改行は 1個のみ。 (素人考えですが、BODY無メッセージの末尾はヘッダ末尾なんだから 2個の改行がある方が自然と感じます) > > > というところなんですが、いかがなものでしょうか? 他に、調べることはありますでしょうか? > >
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: POPモードでの CPUループ (2006-09-07 00:11 by
nabeken
#24747)
Reply
Create ticket
bsfilterなし、インターネット電子メール Auto-Protect ON での *Mew debug*バッファを見ると、RETRコマンドを送っても、ヘッダ、本文が返って来ていないように見えますね。Symantecのバグではないでしょうか。
ただ、bsfilterがCPU timeを使ってしまう理由は不明です。
POPサーバからの返答待ち -> 返答が来ずtimeout -> 割り込み -> ソケット切断、thread kill
となり、CPUを使い切ることはないはずなのですが。
一般論として、コマンドプロンプトの中で、
> bsfilter.exe -d -v ...
として起動すると、どのように動作しているのか、ある程度は観察できます。
Reply to
#24716
Reply to #24747
×
Subject
Body
Reply To Message #24747 > bsfilterなし、インターネット電子メール Auto-Protect ON での *Mew debug*バッファを見ると、RETRコマンドを送っても、ヘッダ、本文が返って来ていないように見えますね。Symantecのバグではないでしょうか。 > > ただ、bsfilterがCPU timeを使ってしまう理由は不明です。 > POPサーバからの返答待ち -> 返答が来ずtimeout -> 割り込み -> ソケット切断、thread kill > となり、CPUを使い切ることはないはずなのですが。 > > 一般論として、コマンドプロンプトの中で、 > > bsfilter.exe -d -v ... > として起動すると、どのように動作しているのか、ある程度は観察できます。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: POPモードでの CPUループ (2006-09-08 13:30 by
Anonymous
#24789)
Reply
Create ticket
水口です。 ありがとうございます。
やっぱり、一番悪いのは Antispam 臭いですね。
bsfilter の CPUループの件ですが、telnet で POPサーバーの 110番ポートに繋いで調べたところ、RETRコマンドの送出直後に接続が切断されていることが判りました。 そうだとすると、タイムアウト処理に落ちなくても辻褄が合うんでしょうか?
具体的には、以下のとおりです。
TELNET> RETR 1
TELNET> +OK 1162 octets follow.
TELNET> Connection closed by foreign host.
以下の QUIT コマンドに対する反応と比べてみると、POPサーバー と Antispam の連合軍が、 RETR に対して応答すべきタイミングで切断してるんじゃ無いかと思います。
TELNET> QUIT
TELNET> +OK Bye-bye.
TELNET> Connection closed by foreign host.
教えて戴いた bsfilter の詳細ログは以下のとおりで、最後の「+OK 1162 octets follow.」の行の出力後にループに入ります。
$ bsfilter.exe -d -v --config-file C:\\************\\pop.conf
start Fri Sep 08 10:57:57 JST 2006
pop mode start Fri Sep 08 10:57:57 JST 2006
pop_proxy is on 10110:0.0.0.0:0.0.0.0
pop_proxy is on 20110:0.0.0.0:0.0.0.0
pop_proxy is on 30110:0.0.0.0:0.0.0.0
pop_proxy is on 40110:0.0.0.0:0.0.0.0
pop_proxy is on 44574:0.0.0.0:0.0.0.0
pop_proxy is on 54574:0.0.0.0:0.0.0.0
#<TCPSocket:0xdcfa18> is accepted
#<TCPSocket:0xdcf760> is connected
resp #<TCPSocket:0xdcf760> +OK Hello there.
resp #<TCPSocket:0xdcfa18> CAPA
send #<TCPSocket:0xdcf760> CAPA
resp #<TCPSocket:0xdcf760> +OK Here's what I can do:
resp #<TCPSocket:0xdcfa18> USER ********%neo.famille.ne.jp
send #<TCPSocket:0xdcf760> USER ********%neo.famille.ne.jp
resp #<TCPSocket:0xdcf760> +OK Password required.
resp #<TCPSocket:0xdcfa18> PASS ********
send #<TCPSocket:0xdcf760> PASS ********
resp #<TCPSocket:0xdcf760> +OK logged in.
resp #<TCPSocket:0xdcfa18> LIST
send #<TCPSocket:0xdcf760> LIST
resp #<TCPSocket:0xdcf760> +OK POP3 clients that break here, they violate STD53.
resp #<TCPSocket:0xdcfa18> UIDL
send #<TCPSocket:0xdcf760> UIDL
resp #<TCPSocket:0xdcf760> +OK
resp #<TCPSocket:0xdcfa18> RETR 1
send #<TCPSocket:0xdcf760> RETR 1
resp #<TCPSocket:0xdcf760> +OK 1162 octets follow.
Reply to
#24747
Reply to #24789
×
Subject
Body
Reply To Message #24789 > 水口です。 ありがとうございます。 > > やっぱり、一番悪いのは Antispam 臭いですね。 > > > bsfilter の CPUループの件ですが、telnet で POPサーバーの 110番ポートに繋いで調べたところ、RETRコマンドの送出直後に接続が切断されていることが判りました。 そうだとすると、タイムアウト処理に落ちなくても辻褄が合うんでしょうか? > > 具体的には、以下のとおりです。 > > TELNET> RETR 1 > TELNET> +OK 1162 octets follow. > TELNET> Connection closed by foreign host. > > 以下の QUIT コマンドに対する反応と比べてみると、POPサーバー と Antispam の連合軍が、 RETR に対して応答すべきタイミングで切断してるんじゃ無いかと思います。 > > TELNET> QUIT > TELNET> +OK Bye-bye. > TELNET> Connection closed by foreign host. > > > > 教えて戴いた bsfilter の詳細ログは以下のとおりで、最後の「+OK 1162 octets follow.」の行の出力後にループに入ります。 > > $ bsfilter.exe -d -v --config-file C:\\************\\pop.conf > start Fri Sep 08 10:57:57 JST 2006 > pop mode start Fri Sep 08 10:57:57 JST 2006 > pop_proxy is on 10110:0.0.0.0:0.0.0.0 > pop_proxy is on 20110:0.0.0.0:0.0.0.0 > pop_proxy is on 30110:0.0.0.0:0.0.0.0 > pop_proxy is on 40110:0.0.0.0:0.0.0.0 > pop_proxy is on 44574:0.0.0.0:0.0.0.0 > pop_proxy is on 54574:0.0.0.0:0.0.0.0 > #<TCPSocket:0xdcfa18> is accepted > #<TCPSocket:0xdcf760> is connected > resp #<TCPSocket:0xdcf760> +OK Hello there. > resp #<TCPSocket:0xdcfa18> CAPA > send #<TCPSocket:0xdcf760> CAPA > resp #<TCPSocket:0xdcf760> +OK Here's what I can do: > resp #<TCPSocket:0xdcfa18> USER ********%neo.famille.ne.jp > send #<TCPSocket:0xdcf760> USER ********%neo.famille.ne.jp > resp #<TCPSocket:0xdcf760> +OK Password required. > resp #<TCPSocket:0xdcfa18> PASS ******** > send #<TCPSocket:0xdcf760> PASS ******** > resp #<TCPSocket:0xdcf760> +OK logged in. > resp #<TCPSocket:0xdcfa18> LIST > send #<TCPSocket:0xdcf760> LIST > resp #<TCPSocket:0xdcf760> +OK POP3 clients that break here, they violate STD53. > resp #<TCPSocket:0xdcfa18> UIDL > send #<TCPSocket:0xdcf760> UIDL > resp #<TCPSocket:0xdcf760> +OK > resp #<TCPSocket:0xdcfa18> RETR 1 > send #<TCPSocket:0xdcf760> RETR 1 > resp #<TCPSocket:0xdcf760> +OK 1162 octets follow.
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: POPモードでの CPUループ (2006-09-13 01:31 by
nabeken
#24857)
Reply
Create ticket
ソケット切断でbsfilterが無限ループに入る障害がありましたので、revision 1.80で修正しました。
Reply to
#24789
Reply to #24857
×
Subject
Body
Reply To Message #24857 > ソケット切断でbsfilterが無限ループに入る障害がありましたので、revision 1.80で修正しました。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: POPモードでの CPUループ (2006-09-13 14:41 by
Anonymous
#24864)
Reply
Create ticket
水口です。
ありがとうございます。 ところが、問題のメッセージを不覚にも POPサーバーで expire させてしまい、確認テストのためのデータがありません。
ボディ無のメールを自分で送信しようとトライしましたが、Mew でも sendmail でも発信には成功するものの受信時のトラブル(コネクションの切断)が再現できません。
前回の書き込みの後に判ったのですが、問題になるのはボディ無メッセージのうち末尾に 2個の改行が無いものでした。 その条件がうまくできないのだと思います。
あるいは、POPサーバー側で設定が変更されて問題が出なくなったのかも知れませんが、しばらく revision 1.79 のままでテストデータが来るのを待とうかと思います。
Reply to
#24857
Reply to #24864
×
Subject
Body
Reply To Message #24864 > 水口です。 > > ありがとうございます。 ところが、問題のメッセージを不覚にも POPサーバーで expire させてしまい、確認テストのためのデータがありません。 > > ボディ無のメールを自分で送信しようとトライしましたが、Mew でも sendmail でも発信には成功するものの受信時のトラブル(コネクションの切断)が再現できません。 > > 前回の書き込みの後に判ったのですが、問題になるのはボディ無メッセージのうち末尾に 2個の改行が無いものでした。 その条件がうまくできないのだと思います。 > > > あるいは、POPサーバー側で設定が変更されて問題が出なくなったのかも知れませんが、しばらく revision 1.79 のままでテストデータが来るのを待とうかと思います。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel
RE: POPモードでの CPUループ (2006-10-20 09:45 by
Anonymous
#25521)
Reply
Create ticket
水口です。
やっと問題を発生させるテストデータが来ました。
bsfilter 1.0.14 でCPUループすることを確認した後に 1.0.15 にバージョンアップし、即座にエラーすることを確認しました。
これで、POPサーバーに直接アクセスしても bsfilter 経由でアクセスしても Mew が同じ挙動をする様になりました。
ありがとうございました。
Reply to
#24864
Reply to #25521
×
Subject
Body
Reply To Message #25521 > 水口です。 > > やっと問題を発生させるテストデータが来ました。 > > bsfilter 1.0.14 でCPUループすることを確認した後に 1.0.15 にバージョンアップし、即座にエラーすることを確認しました。 > > これで、POPサーバーに直接アクセスしても bsfilter 経由でアクセスしても Mew が同じ挙動をする様になりました。 > > ありがとうございました。
You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.)
Login
Nickname
Preview
Post
Cancel