どさにっきクラウド 〜2009年12月中旬〜

by やまや
<< = >>

2009年12月15日(火)

無題

_ Thunderbird3 で既読メールが未読になってしまう件。発生する条件はよくわかんないけど、ひじょーに高い頻度で発生する。毎日数十回。既読のはずのメールが突然800通ほど未読にされる→めんどくさいからフォルダごと既読にする→次の瞬間その800通がまた未読に戻される、とか。なんだそりゃ。

_ あんまりひどいので、調べてみたら やっぱりバグ登録されてた。話を追いかけてみると、TB3 では効率よくフラグ更新を同期するために RFC4551 IMAP CONDSTORE extensionがサポートされたが、そこに不具合があるらしい。CONDSTORE は cyrus でもサポートしているけど、報告されてるのは今のところ dovecot の場合だけのようなので、もしかしたら dovecot 側の実装もおかしいのかもしれない。修正はまだだけど、とりあえずは mail.server.default.use_condstore を false にすることで回避は可能らしい。で、たしかに発現しなくなった。TB3 を使ってるユーザが多いサーバなら、クライアント側ではなくてサーバ側で対処した方がいいのかもしれんなー( CAPABILITY の応答から隠せば使わなくなると思う、たぶん)。

_ TB にも Firefox の Live HTTP Headers のようなプロトコルを生で追いかけられる拡張があればいいのに。 方法がないわけではないが、ひじょーに使いづらい。

_ (2010/01/27 追記): 3.0 でも出てたバグが 3.0.1 になって直るどころかますますひどくなってしまったようだ。この件を検索してやってくる人が多いようなので、回避方法をもう少し詳しく説明しておきます。

_ Thunderbird 側で回避する場合。ツール → オプション → 詳細 → 一般 → 設定エディタで about:config な画面が開くので、フィルタのところに condstore と入力。すると設定名 mail.server.default.use_condstore が残るので、値が true になっていたらその行をダブルクリック。値が false に変われば完了。TB 再起動後から有効(IMAP サーバから切断して接続しなおすだけでもいいかもしれない)。将来このバグが直されたバージョンがリリースされたら、この設定を true に戻しておきましょう(戻さなくても実害はないがパフォーマンス向上の恩恵が得られない)。

_ IMAP サーバ側で回避する場合。TB のバグであってサーバ側には責任はないけど、「その機能には対応していない」とサーバからウソの応答を返すことで、クライアントに CONDSTORE を使わせないようにできます。 dovecot の場合。なお、TB のバグとは別に、 dovecot 側にも 1.2.6 までは CONDSTORE に関するバグがあったらしいので、TB のバグフィックス版が出る前に dovecot のバージョンも上げておいた方がよさげ(このコメントをしている Timo は dovecot の作者)。dovecot 以外の IMAP サーバについては、ごめんなさいわかりません。


<< = >>
やまや