「Firefox は問題ないけど・・・」「IE7 ではどうだ?」「IE6 だと?」「IE5.5 は今回無視」と言うようなことをやる機会が仕事柄少なくないが、クセの強い IE 系の動作確認は IETester と言う便利なツールでけっこうイケる(JavaScript や Flash 等で不具合もあるが)。加えて常用ブラウザーは Firefox 3 と言うこともあって、IE8 が 2009年 3月にリリースされてからも、メインマシン(Windows XP Professional SP3 英語版)の IE は 7 のまま放置していた。
ところが先日、このメインマシンの IE7 で次の不具合が発生していることに気が付いた。
- 起動はするが、スタートページを開けない。
- 任意のサイトの URL をアドレス欄に直接タイプしても閲覧不可。
- 任意のサイトへのショートカットをウィンドウ内に放り込んでも閲覧不可。
- ローカルのデータ(HTML、画像等の Web コンテンツデータ)は表示可能。
- 閲覧不可の場合は、IE のタブの表示が "Connecting..." のままになるが、いつまで放置してもタイムアウトせずに接続を試行し続ける。
不具合に気付いたきっかけは、前述の IETester の最新版 Ver.0.3.3 をインストールして起動させたとき、いくつかのバージョンの IE タブでページを正常に開けず、フリーズしたような状態になったことで、IE 本体の様子を確認したことだ。当初は IETester 最新版インストールによる不具合と考え、旧版に戻したりしてみたが変化はなく、IETester 0.3.3 は他のマシンで正常動作しているので、両者の因果関係は不明。この不具合がメインマシンの IETester だけであればまだ我慢できるが、IE 本体まで具合が悪いとなれば、看過できない問題だ。
ひとまずローカルデータが表示できると言うことは、問題は IE で「閲覧できない」のではなく、サーバーとの通信にあるようだ。名前解決は正常に行えており、Firefox や Google Chrome 等の他のブラウザーを始め、他の TCP/IP アプリケーションに問題はない。
次に自宅の Web サーバーで tcpdump を取ると、次のような不審な挙動がわかった。<IP_ADDRESS> にはメインマシンの IP アドレスを指定する。
- IE7 が Web サーバーへ SYN パケット送出。
- IE7 が Web サーバーから SYN/ACK パケット受信。
- IE7 が Web サーバーへ ACK パケット送出。
- 以下 "2."~"3." の繰り返し。
"3." までは通常の挙動だが、"4." は明らかに異常だ。念のため双方でファイアウォールを無効にしても変化はなし。メインマシンから送出する ACK パケットはサーバーに届いているにも拘らずサーバーがしつこく SYN/ACK パケットを送り返して来るのは、IE7 が送出する ACK パケットに問題があるのか・・・。
今回はあまり時間がないので、調査はひとまずここで中断、続きはまた後日に。もう面倒なので、一発解決の期待をかけて IE8 にアップグレードしてしまうか。