« 超短納期プロジェクトで炎上中(?) | トップページ | コミュニケーション力 »

2009年3月10日 (火)

リリース後の不具合調査中。。。

今日、私が携わったシステムが障害が発生したということで、
調査をしていました。

内容は、Socket通信時に急にクライアント全てが通信不可になる現象により
システムが動かなくなったというもので、

プログラムとログをつき合わせてみると、、、リクエストを受信してその後、
応答を正常に返している・・・すべてのシーケンスを受信しているように
見えるが、クライアントのログを見ると10分も前に送信したものに対して
返信したので、すでにSocketはクローズされているということでした。
(なので、送信後にWinSockエラー10054(相手に切られた)が発生したログが残っていた)

クライアント側がレスポンスを受信していないんじゃないかと思って質問していると
「送ってきていない認識」ということらしい。。。

ここで、原因として考えられるのが
1.サーバはクライアントからのConnectのSocketに対して
  折り返しで送信を行ったが、アプリケーションではなく、ドライバ以降の処理で
  うまく送れなかった。→クライアントが切った(10054)という判定になった。

2.通信するとTIME_WAITのポートがWindowsの場合デフォルト4分ほどブロックされるが、
  最大接続数がデフォルト5000らしいので、溜まりすぎてブロックされていた可能性。
  (通信ログをみるとクライアントから10分後に一斉に送受信して切断エラーになっていたので
  一応疑ってみる。ただ、正解の可能性は0.5%ぐらいですかね。ほとんどありえない)

3.実は時計が狂っていて、クライアント側が折り返しを捨てている。
 (これだと話は早いわけですが、そうではなさそう)

と、いうことで、システムの担当が集まって話をしていた所、
私が質問したかった、レスポンスを捨ててないかどうかとかシーケンスがずれてるようだが?といった
質問ができず、仕様上の話をされていかにも「お前のプログラムがおかしいんじゃないのか?」的な
雰囲気(あくまでも雰囲気です。そう言われたわけではないです。)が漂い、
ソケットプログラムでリトライをしろとか、通信エラー時にすぐに切るより少し粘るほうが良いとか
熱く語られて終わりと言う。。。
(結局は今の所、正常に送信したと言うログがあるのでハブとかNICとかドライバ系のエラーだろうと
言う事になっているが、プログラムを調査してます。。。
TcpListenerとNetworkStreamを使って通信させているようなので、恐らく
正常に全て送ったor通信エラーで送れてないしか判定できないような気がするので
リトライもクソもないような気がしています。)

結局、話が前には進んだけれども、何とも違和感の残る1日でした。

|

« 超短納期プロジェクトで炎上中(?) | トップページ | コミュニケーション力 »

日記・コラム・つぶやき」カテゴリの記事

コメント

通信関連の問題なら、wireshark みたいなパケットキャプチャ使って実際にどのような通信が行われたのか見てみれば良いのではないかな。...と思いました。

投稿: p2 | 2009年3月11日 (水) 22時40分

確かにキャプチャを取るのが一番早いのですが何しろ、「客先」であることと、
それから半年間「再現しない」ということで
取ってても大して意味がなさそうだと
言う事になりました。

設定を少し変更して今度はキャプチャするのかどうかわかりませんが、様子を見るそうです。

結局、結論は1.となりました。
さすがに送信処理をしっかりしている
ようなのでそれ以上疑いようがありませんでした。。。

(プログラムはひどかったけど。。。)

投稿: T-1000 | 2009年3月11日 (水) 23時39分

なるほどー。半年間再現しないのならキャプチャをとっても分からない可能性が高そうですね。通信系のプログラムは難しいです orz...

投稿: p2 | 2009年3月12日 (木) 00時04分

通信系は一度うまくいけば大体
不具合はでない事が多いですが
それでもこういうよく分からない
不具合がでるんですよね。

通信系は本当に難しいと思います。
面白いとは思いますけど。

投稿: T-1000 | 2009年3月13日 (金) 00時25分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/50625/44307671

この記事へのトラックバック一覧です: リリース後の不具合調査中。。。:

« 超短納期プロジェクトで炎上中(?) | トップページ | コミュニケーション力 »