「Firefox は問題ないけど・・・」「IE7 ではどうだ?」「IE6 だと?」「IE5.5 は今回無視」と言うようなことをやる機会が仕事柄少なくないが、クセの強い IE 系の動作確認は IETester と言う便利なツールでけっこうイケる(JavaScript や Flash 等で不具合もあるが)。加えて常用ブラウザーは Firefox 3 と言うこともあって、IE8 が 2009年 3月にリリースされてからも、メインマシン(Windows XP Professional SP3 英語版)の IE は 7 のまま放置していた。

ところが先日、このメインマシンの IE7 で次の不具合が発生していることに気が付いた。

  1. 起動はするが、スタートページを開けない。
  2. 任意のサイトの URL をアドレス欄に直接タイプしても閲覧不可。
  3. 任意のサイトへのショートカットをウィンドウ内に放り込んでも閲覧不可。
  4. ローカルのデータ(HTML、画像等の Web コンテンツデータ)は表示可能。
  5. 閲覧不可の場合は、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 アドレスを指定する。

# tcpdump -nn host <IP_ADDRESS> and port 80
  1. IE7 が Web サーバーへ SYN パケット送出。
  2. IE7 が Web サーバーから SYN/ACK パケット受信。
  3. IE7 が Web サーバーへ ACK パケット送出。
  4. 以下 "2."~"3." の繰り返し。

"3." までは通常の挙動だが、"4." は明らかに異常だ。念のため双方でファイアウォールを無効にしても変化はなし。メインマシンから送出する ACK パケットはサーバーに届いているにも拘らずサーバーがしつこく SYN/ACK パケットを送り返して来るのは、IE7 が送出する ACK パケットに問題があるのか・・・。

今回はあまり時間がないので、調査はひとまずここで中断、続きはまた後日に。もう面倒なので、一発解決の期待をかけて IE8 にアップグレードしてしまうか。

Comments are closed.