Thunderbirdがフィードアカウントの新着記事確認を時々忘れる
以前に【ThunderbirdがフィードURLにアクセスしなくなる】という記事を書いたが、その時はThunderbirdがフィードURLにアクセスしている途中にパソコンをスリープしたら混乱して、その後はThunderbirdを再起動しない限りフィードURLにアクセスしないという症状だった。
今回は、それよりも軽症だが、前と異なり、スリープするタイミングに注意すれば防げるものではなくなった。
今回のトラブルに気付いてから、何度もツイートしているのだが、最初のツイートは次のようなものである。
Thunderbirdが時間になってもフィードのダウンロードを開始しなかった。次の開始時間の5分前にスリープ状態にして、ダウンロード時間を15分くらい過ぎてからスリープを解除したんだけど、今までは、その解除のタイミングでダウンロードを開始した。今回は開始しなかった。様子を見る。
— 正己 (@self7777) 2015, 8月 15
Thunderbirdを38.2.0にアップデートしてからである。7/9にリリースされた【バージョン 38.1.0】では起こらず、8/14にリリースされた【Version 38.2.0】にアップデートしてから起こった。何が変わったのか分からないが、【バージョン 38.0.1】で同梱されたアドオン「Lightning」のボタンがThunderbird上に現れた。【バージョン 38.1.0】までは同梱されていることに気付かなかった。即座に無用のアドオン「Lightning」は無効にした。気づいた変化はそのくらいである。リリースノートを見ると、【バージョン 38.0.1】で追加された「メッセージごとにファイルを作る形式 (maildir) で、ローカルにメッセージを保存できるようになりました」という機能が【Version 38.2.0】で設定エディタを使わなければ使えなくなったらしい。これらが関係しているのかどうか分からない。とにかく、【Version 38.2.0】にアップデートした8/15から、Thunderbirdがフィードアカウントの新着記事の確認を忘れるようになった。
どのような時に新着記事の確認を忘れるのか、新しいプロファイルで起動して実験してみた。
アカウントの設定は次のように、60分ごとに新着記事を確認する設定にしてある。
実験の過程はツイートしてあり、スタートは次の二つである。
5:15にThunderbirdをテストプロファイルで起動。オフライン設定は「検出された状態に自動的に従う」のまま。自動で新着記事が確認されなかったが、手動で新着記事の確認もしない。通常なら6:15に自動で新着記事を確認。 pic.twitter.com/TaHAGfzAuP
— 正己 (@self7777) 2015, 8月 19
11:15にThunderbirdをテストプロファイルで起動。オフライン設定の起動時の状態は「オンライン」にしてある。自動で新着記事が確認されなかったが、手動で新着記事の確認もしない。通常なら12:15に自動で新着記事を確認。 pic.twitter.com/60Q7psHyOg
— 正己 (@self7777) 2015, 8月 20
オフライン設定を「検出された状態に自動的に従う」と「オンライン」の両方で行った理由は次の通り。新着記事を確認してなかったプロファイルのフィードアカウントが別のプロファイルでメールを受信したタイミングで新着記事の確認を開始したこと、また、以前にWindows XPでネットに接続してない状態でノートPCを起動したらThunderbirdが自動でオフラインになってしまい、ネットに接続した後もオフラインのままで新着メールの確認の際にオンラインにするか尋ねてきたことがあり、先日Googleで検索して見つけた【thunderbirdが勝手にオフラインになる 【OKWave】】に古いThunderbirdの情報(2006-10-14 10:54:26)だが『「前回と同じ状態で起動]になっていたので「常にオンラインで・・・」に変えてみました』と書いてあり、改善されたかどうか分からないが、Thunderbirdがオフラインになってしまったことが原因かもしれないと思ったので、オフライン設定を変えて試してみた。すなわち、スリープから復帰した後、PCがネットに接続し直すタイミングよりもThunderbirdがオンラインかオフラインか確認するタイミングの方が早くなって、Thunderbirdが内部でオフラインになってしまったのではないか、そしてスリープからの復帰時に「Thunderbirdの起動」と同じ解釈がされるのなら、オフライン設定で起動時の状態を「オンライン」にしてしまえば改善するのではないか、と思ったからである。
結論を先に書くと、オフライン設定で起動時の状態を「オンライン」にしても、症状は改善しなかった。
実験結果のツイートを表にすると次の通りである。
5:15 |
Thunderbirdをテストプロファイルで起動。 オフライン設定は「検出された状態に自動的に従う」のまま。 自動で新着記事が確認されなかったが、手動で新着記事の確認もしない。 通常なら6:15に自動で新着記事を確認 |
6:15 |
起動後初めての新着記事確認を自動で行った |
6:30 |
PCをスリープ |
6:45 |
スリープ解除 |
7:15 |
新着記事を自動的に確認した。 正常通り前回から60分後に実行された |
7:55 |
PCをスリープ |
8:20 |
スリープ解除。 新着記事の確認を行わず |
8:25 |
ネットへのアクセスは、このツイートがスリープ解除後最初。 新着記事の確認を行わず |
8:44:55 |
自動的に新着記事を確認した。 本来確認すべき8:15から30分後。 スリープ解除から25分後。 スリープ解除後最初にネットにアクセスしてから20分後。 |
9:44:55 |
自動的に新着記事を確認した。 前回の確認から60分後 |
10:44:55 |
自動的に新着記事を確認した。 前回の確認から60分後。 今日の1回目の実験はこれで終了 |
11:15 |
Thunderbirdをテストプロファイルで起動。 オフライン設定の起動時の状態は「オンライン」にしてある。 自動で新着記事が確認されなかったが、手動で新着記事の確認もしない。 通常なら12:15に自動で新着記事を確認 |
11:30 |
PCをスリープ |
11:45 |
スリープ解除 |
12:15 |
新着記事を自動的に確認した。 途中にスリープを一度挟んだが正常通り起動から60分後に実行された |
12:55 |
PCをスリープ |
13:20 |
スリープ解除。 新着記事の確認を行わず。 |
13:25 |
新着記事の確認を行わず。 ネットへのアクセスは、このツイートがスリープ解除後最初 |
13:45:18 |
自動的に新着記事を確認した。 本来確認すべき13:15から30分後。 スリープ解除から25分後。 スリープ解除後最初にネットにアクセスしてから20分後 |
14:45:18 |
自動的に新着記事を確認した。 前回の確認から60分後 |
15:17 |
PCをスリープ |
15:51 |
スリープ解除。 新着記事の確認を行わず 新着記事を確認する予定だった15:45:18は過ぎている。 スリープ解除後に新着記事が確認されないのは13:20のスリープ解除時と同じ |
16:25:11 |
自動的に新着記事を確認した。 本来確認すべき15:45から40分後。 スリープ解除から34分後。 スリープ時刻からは78分後。 前回の確認時から100分後 今日の2回目の実験はこれで終了 |
Thunderbirdのフィードアカウントが新着記事を確認する時刻にPCがスリープしていた場合に、スリープ解除後に新着記事を確認するタイミングが全く分からなかった。
1回目の実験と2回目の実験の2度目のスリープでは、スリープと解除のタイミングが同じせいか、同じようなタイミングで新着記事の確認が行われているが、2回目の実験の3度目のスリープでは、1回目の実験とは違うタイミングでスリープして解除したら、新着記事を確認するタイミングも1回目と異なった。様々なタイミングでスリープしたり解除したりする実験を繰り返せば規則のようなものが見えるのかもしれないが、そんな余裕はない。そもそも、プログラミングの際に何らかのルールを決めているはずだから、それを教えてほしい。とても気になる。
さて、【Version 38.2.0】にアップデートする前は、新着記事確認時刻にスリープしていた場合、スリープを解除した直後に新着記事の確認を始めた。フィードアカウントの新着記事確認中はPCの動作が鈍くなるので、作業を始める少し前にスリープを解除していた。それは苦ではなかったのだが、今回の仕様変更は次のような問題が生じる。
スリープを解除して25分後とか34分後のようにある程度の時間がたってから新着記事を確認するようになると、その新着記事確認の直前にスリープしたら、新着記事の確認がさらに遅れる。前回の確認から既に約90分が過ぎているのだが、次の新着記事確認はいつだろうか。例えば、上の2回目の実験の3度目のスリープ解除後に新着記事を確認したのは16:25で前回の確認時から100分後である。16:20にスリープして16:30にスリープを解除したら、その解除からさらに30分くらい後の17:00に新着記事を確認するのだろうか。そうだとして、16:55にスリープして17:05にスリープを解除したら…。そのように、新着記事確認の直前にスリープする使い方を繰り返した場合、Thunderbirdは新着記事を確認しないまま終了することになる。実際、そのようなことが起こったから、今回の問題に気付いたのである。
ちなみに、私の場合と症状が違うと思うが、【38.0.1Up後自動受信しなくなりました】もあった。こちらは未解決のようである。
さて、Thunderbirdがフィードアカウントの新着記事確認時刻にPCがスリープ状態だった場合に新着記事の確認をスリープから復帰した直後ではなく数十分以上たってから(忘れていて思い出したように)行うようになったのは、仕様変更なのだろうか、それともバグなのだろうか。対処方法はスリープ解除後に手動で新着記事の確認を行えば良いのだが、それは以前よりも面倒である。スリープ解除後1時間くらいは新着記事を確認するまでスリープしない、という使い方は馬鹿げてる。この不思議な動作は、Thunderbirdの次のアップデートで改善されるのだろうか。あまり期待できないが、改善されることを願う。困っているのは私だけかもしれないが…。
追記(2015/9/2):
サイドバーでフィードアカウントの上にメールアカウントがある場合に、Thunderbird起動時の新着記事確認が機能することをいつものプロファイルで確認したので、新しいプロファイルで確認実験を行ったら、フィードアカウントだけを登録した場合は起動時に新着記事を確認しなかったが、メールアカウントを追加した後は、起動時に新着記事を確認した。
本来の新着記事確認時刻にスリープしていた場合の振る舞いも変わるかもしれないので、メールアカウントがフィードアカウントの上のある状態で実験。過程はツイートに残した。
15:40にプロファイルtestでThunderbirdを起動。フィードアカウントは起動時に新着記事の確認をした。アカウント設定は次の通り。フィードアカウントの上にメールのアカウントがある。 pic.twitter.com/OSI8mJmJ3C
— 正己 (@self7777) 2015, 9月 2
この実験ではスリープ解除後2時間12分を経てから新着記事を確認した。この「2時間12分」は直前にスリープしてから解除するまでの時間と一致した。上記のフィードアカウントのみの実験でも、本来の新着記事確認時刻にスリープしていた場合、スリープ解除後の最初に新着記事を確認するのは、やはり、直前にスリープしてから解除するまでの時間であることが分かった。
少ない実験結果であるが、ようやく一致するルールが見つかった。
もしも、そのようなルールがあるのなら、長時間スリープした場合は、スリープ解除後に長時間新着記事を確認しなくなるので注意が必要。
追記(2015/9/3):
スリープ時間が新着記事確認時刻に影響するのは、サーバ設定に合わせた時刻にPCがスリープしている場合だけだと思っていたが、そうとは限らない可能性が見られた。
例えば、前回の新着記事確認時刻が7:37で7:48にスリープして8:19にスリープを解除すると、サーバ設定で60分ごとに新着記事を確認するのなら通常は8:37に新着記事を確認するのだが、実際はスリーブ解除の8:19からスリープ時間の31分を経た8:50に新着記事を確認する。ただし、もしもスリープ解除が8:09であれば、その21分(スリープ時間)後の8:30ではなく、サーバ設定により予定された8:37に新着記事を確認する。
すなわち、サーバ設定で定められた間隔よりも短い間隔で新着記事の確認はしないが、原則としてスリープ解除からスリープ時間を経た後に新着記事の確認をする。そんな仕組みになっているように思われる。これは、このブログの上記の結果と矛盾しない。
Thunderbirdのいつも使っているプロファイル。起動直後に手動でフィードの新着確認をしたのは7:38:28。7:40~50頃から8:15頃までスリープ。8:38に新着記事確認をすると思ったのだが、確認したのは8:51:07。スリープ解除から36分くらい。正確ではないが…。
— 正己 (@self7777) 2015, 9月 2
追記(2015/9/12):
フィードアカウントだけでなくメールアカウントでも似た現象があるようで、既にバグとして認識されていて、Thunderbird 38.3.0 で改善される見通し。
Aryx [:archaeopteryx][:aryx] 2015-08-20 02:14:08 PDT
Thunderbird 38.2.0 on Windows 8.1 64 bit, Lightning disabled
Starting last week, I noticed that Thunderbird doesn't check anymore for mails if the machine resumes after hibernation while Thunderbird was running. The NSPR log has no items with timestamps after the hibernation.
What I also noticed but only with NSPR logging active: The UI didn't response to my mouse clicks and scrolls after hibernation or very, very slowly (and only to clicks). This even affected a Thunderbird instance running in parellel with no NSPR logging set.
I hadn't experienced the issue with Thunderbird 38.1.
(Bug 1196662 - Thunderbird not checking for mails and becomes unresponsive after hibernation (problem is caused by upgrade to Thunderbird 38.2.0) )
Wayne Mery (:wsmwk, use Needinfo for questions) 2015-09-11 13:53:01 PDT
(中略)
Thanks for your diligent testing. We know this is a serious issue, and thunderbird drivers already plan to take the patch for Thunderbird 38.3.0 as Liz alludes to in bug 1197152. Watch here for a patch landing. Until then there is nothing more to be done or said. Send me a private email if you'd like to help test 38.3.0 when we are getting it ready to ship.
(Bug 1196662 - Thunderbird not checking for mails and becomes unresponsive after hibernation (problem is caused by upgrade to Thunderbird 38.2.0) )
追記(2015/9/30):
動作は未確認だが、Thunderbirdが 38.3.0 にアップデートされて、「Bug 1196662」は解消されたらしい。
Fixed Checking for new messages correctly works after hibernation again
(Thunderbird — Notes (38.3.0) — Mozilla)
コメント 0