メールの容量についてNo.09047
memphis さん 03/06/25 11:52
 
メール受信でエラーが起こったのですが、なんとなく鶴亀メールには
受信制限があるのではないかと思ったので、教えてください。


・状態
 メールを受信しようとしたところ、以下のエラーでできませんでした。
 >鶴亀メールのプロセスで保護違反が発生しました。
 >鶴亀メールは以上終了します。
 >鶴亀メールの以上終了についての詳細情報は、
 >dump.txtファイルに出力されています。

・読み取るメールの状態
 全件で658件、合計容量は264M
 その内、258Mのメールが1通あった。
 (そのメールは添付ファイルがあり、スプールの行数にして3706763行)

・鶴亀メールのステータスバー
 245069K/270840Kでエラーになって止まった。

・インポート
 サーバからスプールをパソコンに持ってきてインポートをしたが
 結果は同じでした。


・使用環境
 OS :Windows2000 Pro (SP4)
 MEM:512M
 鶴亀Version 2.92(2.91も同様)

以上

[ ]
RE:09047 メールの容量についてNo.09048
秀まるお さん 03/06/25 18:09
 
>  その内、258Mのメールが1通あった。

 そのような巨大なメールを送受信するテストはしたことがありませんでした。
たしかにそれでダメな可能性は高いかもしれません。

 出来れば死んだときに生成さたdump.txtファイルの内容を教えて欲しいです。
そうしていただくと調査がだいぶ楽になります。

 ここの会議室に書き込んでいただくか、サイズが大きい場合は

    maruo@mitene.or.jp

 宛にメールで送って頂いてもいいです。

----------
 巨大なメモリが必要になった時は、LocalAllocじゃなくてCreateFileMapping
するような処理はしてるつもりですが、どこかに抜けがあるのかも…

[ ]
RE:09048 メールの容量についてNo.09049
秀まるお さん 03/06/26 09:56
 
 dump.txt送って頂いたありがとうございます。調べてみたら、
CreateFileMappingでエラーが返っているようです。

 512Mバイトのメモリを搭載しているにも関わらずこのエラーが出るということ
は、僕のメモリの取り方が悪い可能性が高いです。あるいは本当にメモリ不足だ
ったとしても、もうちょっとましな死に方をすべきです。

 ということで、その辺一通り調べてうまく修正させていただきます。

 しばらくお待ちください。

[ ]
RE:09049 メールの容量についてNo.09050
秀まるお さん 03/06/26 10:16
 
 CreateFileMappingじゃなくて、VirtualAllocでした。

 どっちにしても直します。(少々大がかりになるかも)

[ ]
RE:09050 メールの容量についてNo.09051
秀まるお さん 03/06/26 14:40
 
 こちらで再現テストして、とりあえず回避する方法を見つけました。

 問題はつまり、仮想メモリ不足ということのようです。こちらで320メガバ
イトのメールを作成して、それをインポートするテストをしてみたら、仮想メモ
リ不足の警告メッセージが出てきて、かまわずOKして続行したら、死にました。

 エラーコードを見てみたら、

   ERROR_COMMITMENT_LIMIT
   The paging file is too small for this operation to complete.

 というのが出てました。

 それで、試しに「コントロールパネル・システム・詳細・パフォーマンスオプ
ション」から「仮想メモリ・変更」して、使えるドライブ全部(3つ)に512Mバ
イトが上限のページングファイルを作成し、その状態でもう一度インポートする
テストをしたら、今度はうまくインポートできました。

 ということで、とりあえずは仮想メモリを増やす方法で回避して欲しいです。

 根本的な問題解決のためには、オンメモリで行っているメールの受信や解析関
係の処理を、なるべくテンポラリファイルを使うようにするか、またはメモリの
使用量が減るような何らかの対策をするしかありません。その辺、簡単に対応で
きそうな所だけ探してみます。

 しかし、それをやたとしても、最終的にアドレス空間が4ギガバイトであるた
めの制限にいつかひっかかることになります。巨大なメールをやりとりするには、
最終的には64bitプロセッサにでも移行しないと無理じゃないかと思います。

[ ]
RE:09051 メールの容量についてNo.09052
秀まるお さん 03/06/26 14:55
 
 言い忘れましたが、こちらでテストしたマシンはメモリ384Mバイトの
Pentium2 - 400MHzマシンです。

 あと、320Mバイトのメールをインポートしている最中の仮想メモリ使用量
は、1000Mバイトを超えてました。
 (タスクマネージャで確認しました)

[ ]
RE:09052 RE:メールの容量についてNo.09053
memphis さん 03/06/26 16:51
 
こういうメールは年に数回しか来ないので、次回のバージョンアップに
直していただけれるとうれしいです。
(50MBのメールもありますが、こちらはOKです)


> 言い忘れましたが、こちらでテストしたマシンはメモリ384Mバイトの
>Pentium2 - 400MHzマシンです。
>

こちらのPCは、「Pentium 3 - 700Mhz」で
ページファイルは、768M-1536Mに設定してあります。

 

[ ]
RE:09053 RE:メールの容量についてNo.09054
秀まるお さん 03/06/26 17:05
 
> ページファイルは、768M-1536Mに設定してあります。

 260メガバイト程度のメールなら、たぶん1000バイト程度しかメモリを食
わないんじゃないかと思いますが、どうなんでしょ?。一度タスクマネージャ上
でメモり使用量を監視していただけると助かります。

 (鶴亀以外のソフトがメモリを食ってるとダメなのやら?)

■状況報告
 いくつかメモリ獲得の無駄(大きめに取ったり、少しづつサイズを大きく拡張
するような処理)があったので、その辺だけ直しました。

 他に、添付ファイルを取り出す処理なんかも見直します。

 以前は受信したメールを一度テンポラリファイルに保存して、そこから解析処
理してたんですが、ウィルス入りのメールだとアンチウィルスソフトが消してし
まうことがあり、その後鶴亀メールの動作が不安定になるってことで、全部オン
メモリで処理するように直した経緯もあります。

[ ]
RE:09054 RE:メールの容量についてNo.09055
秀まるお さん 03/06/26 17:27
 
 あと、ついでに、そのメールには巨大な添付ファイルが付いているのか、それ
とも本文が260メガバイトくらいあるのか、その辺も教えて欲しいです。

 (こちらでテストしたメールは大量の添付ファイルと1つたけ140Mバイト
程度の巨大な添付ファイルを付けた物でしたが)

[ ]
RE:09055 RE:メールの容量についてNo.09056
秀まるお さん 03/06/26 19:25
 
 何度もすみません。内部の処理を見直していたら、受信したメールとまったく
同じサイズのメモリを2倍確保してました。

 メール中のNULL文字を空白に置き換えたり、RFC2231形式のファイル名を普通
のファイル名に変換するのに都合がいいようにそうしてまして…。

 その辺の処理を直したので、少なくとも次のバージョンからは、メールのサイ
ズ分(今回の話だと260Mバイト程度)のメモリを使わなくなります。

 いろいろテストしますので、しばらくお待ちを。

[ ]
RE:09055 RE:メールの容量についてNo.09057
memphis さん 03/06/26 22:51
 
そのサイズの大きいメールですが、以下の内容です。

・HTML形式のメールで、内容は1K程度。
 (実際に計ったわけではなく、見た感じです)

・PDFの添付ファイルが1つあり、これが約250Mもあるファイルです.


これ以外に、こちらでテストする事、確認したいことがありましたら
遠慮なく言ってください。

[ ]
RE:09057 RE:メールの容量についてNo.09058
秀まるお さん 03/06/27 09:09
 
 BASE64形式でエンコードさた添付ファイルを取り出す時、BASE64形式でのデ
コード結果はデコード元の3/4以下になります。その法則を利用して、添付ファ
イル用のメモリを3/4に減らしました。これでたぶん80メガバイト程度節約で
きると思います。

 本当は、添付ファイルを取り出す時に、メモリ上ではなくて直接ファイルに出
力してしまう手もあるんですが、テキスト形式添付ファイルやHTMLパートの場合
に文字コードの変換などが必要でして少々面倒なことになります。ということで
やめておきます。

 今回の一連の修正で、少なくとも300Mバイト以上メモリを節約したと思う
ので、もう大丈夫だと思います。

 今、レベルダウンが起きてないかテスト中です。(既にテスト中に1つレベル
ダウンを見つけていたりするし)

[ ]
RE:09058 RE:メールの容量についてNo.09066
memphis さん 03/07/02 17:46
 
Ver2.94の動作の報告です。

このバージョンで、260Mの添付メールが読み込めました。
対応、ありがとうございます。

[ ]