Thu, 18 Aug 2011 (平成23年) [長年日記]
_ Thunderbird Portable 5.0 から 6.0 へ
複数の PC で同じようにメールを管理したい、でも IMAP なサーバが用意できないという条件下で思いついたのが Thunderbird Portable をファイルサーバに置いて、誰にでも読まれてしまわないようにはフォルダへのアクセス制限をかけておくという方式。そんな状況で起きたトラブル。
更新しても「更新をインストールできませんでした。Thunderbird が他には起動していないことを確認した後にもう一度 Thunderbird を再起動してみてください。」と言われてしまう。状況はこちらに書かれているのとまったく同じ。
上の質問では Thunderbird Portable のインストーラをダウンロードしてきてごく普通にインストールしてからデータを戻してみてくださいという回答で解決してたけど、自分が見つけた解決策はファイルサーバにログオンしてそこで更新作業をすれば問題なしというもの。こっちのほうがちょっと楽。
さて、共有フォルダから起動してて更新に失敗すると App\Thunderbird\updates\0 にログが残ってることが試行錯誤中にわかったので見てみたら
EXECUTE PATCH thunderbird.exe rename_file: failed to rename file - src: thunderbird.exe, dst:thunderbird.exe.moz-backup, err: 13
となっていて、thunderbird.exe をバックアップ用にリネームしようとして失敗していることがわかった。タスクマネージャーで確認してみると Updater.exe が動き出す直前に thunderbird.exe はいなくなっているのでプロセスが残ってしまってファイル名の変更ができないわけではないみたい。だとすると原因は何なのだろうと思いながら、環境をいろいろと変えて更新を実行してみたらこんな結果になった。
ファイルサーバ | クライアント OS | 更新の成否 |
Windows Server 2003 | Windows XP | 失敗 |
Ubuntu 10.04 | Windows XP | 失敗 |
Windows Server 2008 | Windows XP | 失敗 |
Windows Server 2008 | Windows 7 | 成功 |
Windows Server 2003 | Windows 7 | 失敗 |
Windows Server 2008 と Windows 7 の組み合わせの時、つまり SMB 2.0 で通信できた時だけ成功した。SMB 2.0 だと通信効率がよくなっているらしいから、thunderbird.exe プロセスを終了してから thunderbird.exe をいじれるようになるまでの時間が短くなってファイル名変更でエラーにならないというような状況なのだろうか。こういう場合って何を使ってどこをチェックしたらこの仮説の検証ができるのかな。