Thunderbird で popstate フォルダが生成される件

20191205111357

結果から書いてしまうと二重起動の可能性が一番高いかな、と思います。

先ずThunderbird(以下TB)の仕様から。

プロファイルフォルダ配下にあるメールデータフォルダには通常、TB上で見えるメールフォルダ階層と同じファイルが生成されます。
TBの既定としてはInboxとか、Sentとか、Junkとか他にもいくつか。当然ユーザがTB上で作成したフォルダもここにある。
逆にここにExplorer等のファイラ経由で直接ファイルを生成した場合もTB上ではメールフォルダとして認識される。

次に popstate.dat ファイルの仕組み。
このファイルにはPOPサーバ上のメールIDが記録される。
具体的な動作としては「サーバ上にメールを残す」設定にしてある場合、受信する度に過去のメールがダブって受信されては困るので「ここまで受信済みよ」という内容が記録されということ。

仕様の話はここまで。ここからは件の症状が発現する仕組みの話。
popstate-[n].dat(nは連番) が生成されるのは既に存在する popstate.dat が何らかの原因で書き込みが出来ないから。
例えば二重起動で popstate.dat が先行するTBプロセスに掴まれてしまっている場合に後続のTBプロセスが連番付きファイルを生成、或いはファイル同期(クラウドバックアップ)などの仕組みを併用していて、偶々 popstate.dat が書込処理の場合、など。

で、連番付きの popstate-[n].dat ファイルが自動生成される。ここまでは表面上の動きとしてなんら症状が出ない。
問題は次のTB起動時だ。先の起動時に生成されたpopstate-[n].dat がメールフォルダとして認識されてしまう。そしてこの時恐らく同時にいくつかのメールが二重受信されている筈。
自身が生成したシステムファイルをフォルダとして認識してしまうのでバグと言って差し支えないと思う。

一応 Thunderbird の名誉の為にも断りを入れておくとTBは二重起動を滅多に起こさない。今回の検証の際も苦労した。ただしこの辺はPCの性能による。性能の低いPCだと起動に時間がかかり、ユーザ側の二重操作の頻度や可能性も増えるからだ。

現時点で根本解決方法はないが、メールフォルダ内のpopstate絡みのファイルを一旦全て消去すれば元に戻る(二重受信はしてしまうけどね)

コメントを残す

メールアドレスが公開されることはありません。