2.26a リリースに向けて特に今回は IMAP4 関連の修正が相当量含まれている為に、各種 IMAP4 クライアントにてテストを行っています。
特にパフォーマンスも改善されている為に、少しだけハードなテストを行っているのですが、そんな中 Thunderbird の最新版が少々信頼できない場合があるケースが出てきました。
Thunderbird は持病のようにプロファイルが肥大化して動作が重くなることがあるのですが、これについてはまぁプロファイルを削除したり新規で作成しなおしたりすれば良いのですが、すぐにおかしくなります。
ただ、これについては対処方法が無くはないのですが(Global Search や Windows Search を無効化するとか。効果が無い場合も多いですが)そのテストの最中、不可解な現象が。
1)08:02.459 [x] [3333] に移動
2)08:02.521 [x] 3 OK [READ-WRITE] SELECT Complete
3)08:02.755 [x] 4 UID fetch 1:* (FLAGS)
4)08:03.021 [x] Send UID Fetch result(Record 1450 / 54576 bytes)
5)08:03.036 [x] 4 OK UID FETCH Completed
6)08:03.099 [x] 6 uid copy 845102:846551 "2222"
7)08:11.320 [x] Info:Numbers of the copied file 1,450 / Time 8,174ms / Ave 5.64ms
8)08:11.320 [x] 6 OK UID COPY Completed
そうそう次の版から IMAP4 のレベル3のログに Info: というタグが出力されます(他にも出力されるものがあります)
これは、該当サーバーのストレージ速度の参考になる値でして「何ファイルコピーしてトータルでどれくらい時間がかかり、1ファイル当たりのコピー時間」を意味します。
上記は SATA 1T HDD(WesterDigital)での速度です。
この内部処理は全力で処理していますので、ここが遅い場合は、ストレージの速度が遅いということになります。
例えば HDD が断片化している(メールは細かなファイルが多いので断片化しやすいです)場合や、残り容量が少ない(HDD の外周に行くほど速度が低下します)訂正:HDDは外側から書き込まれていく為、内側に行くほど速度が低下します)などがあります。
「IMAP4が遅いなぁ」なんて思う場合は、ここの値を参照して下さい。この箇所については、ソフトウェアではオンメモリでやらない限りなんとかなるレベルでは無い所ですので。
SSD などにしますと劇的に改善すると思います。
閑話休題
上記は、3333 というフォルダから 2222 というフォルダに対して 1,450通のメールのコピーを指示しています。
なんら問題はありません。
問題は、その直後に同じ動作をした場合です。
08:47.434 [x] 12 uid copy 845102,845114:845122,845134:845141,845153:845160,845172:845180,845192:845199,845211:845218,845229:845237,845248:845255,845266:845273,845285:845293,845305:845312,845324:845331,845343:845348,845355:845360,845367:845371,845378:845383,845390:845396,845403:845408,845415:845420,845428:845434,845442:845447,845455:845460,845467:845472,845479:845483,845490:845494,845501,845513:845518,845530:845535,845547:845551,845563:845567,845579:845583,845595:845599,845611:845615,845627:845631,845643:845647,845659:845663,845675:845679,845691:845695,845707:845709,845726:845730,845747:845751,845768:845772,845789:845793,845810:845814,845831:845835,845852:845856,845873:845877,845894:845898,845915:845919,845936:845940,845957:845961,845978:845980,846122:846126,846131:846135,846140:846144,846151:846155,846162:846166,846173:846177,846184:846188,846195:846199,846206:846210,846217:846221,846228:846232,846239:846243,846249:846252,846260:846267,846275:846281,846289:846295 "2222"z
08:47.699 [x] Info:Numbers of the copied file 393 / Time 249ms / Ave 0.63ms
08:47.699 [x] 12 OK UID COPY Completed
あえて省略しません。
1回目の UID COPY では、単純に 845102:846551 と指定していたメールID が、いきなりおかしなことになっています。
ただ、分割して処理を行うケースもありますので、これもわからないでもありません。
さて、本命は、この続きです。
08:47.699 [x] 13 uid copy 846295,846302:846309,846316:846322,846329:846335,846342:846349,846356:846362,846369:846375,846382:846389,846395:846402,846409:846416,846423:846426,846434:846436,846444:846446,846454:846456,846464:846466,846474:846476,846484:846486,846494:846496,846504:846506,846514:846516,846523:846525,846532:846534,846541:846543,846550:846551 "2222"
08:47.777 [x] Info:Numbers of the copied file 111 / Time 78ms / Ave 0.70ms
08:47.777 [x] 13 OK UID COPY Completed
同じく分割してコピーを行っているようなのですが、2回目の最後の数値と、3回目の最初の数値を確認しますと、同じ 846295 という ID を指定しています。
結果どうなるかというと、同じメールが重複してコピーされます。
最終的には、1,450 通のメールをコピーするはずが、1,452通となぜか2通分重複指定が発生。
おそらく分割数が増えれば増える程、重複指定される可能性が上がり、メールが増殖していくと思います。
これ、どうみても 100% 断言できる Thunderbird 側のバグですね。
今の所、勝手に増殖する現象だけを確認していますが、これコピーする ID を飛ばすような現象が発生すると、最悪メールが消えることになります。
ちなみに、テストで利用している Thunderbird は完全にアンインストールを行いプロファイルも関連フォルダもすべて削除した上で、最新版を新規インストールしてアドオンも全て削除して(Lightning すらOFF)アカウントを設定した直後に、メールの全選択、メールのコピー>コピー完了まで操作せずに待つ>再度メールのコピー>現象発生
という具合です。
これで「使ってる PC がおかしい」言われたらどうにもなりません(^-^;
まぁ、Thunderbird 自体が Mozilla の手を離れて現在はセキュリティ関連とバグフィックスのみだったと記憶していますので、しょうがないかもしれませんが。
一応、Thunderbird を使っているユーザー様はご注意頂く様お願い致します。