BJさん「時間切れ」事件

1999.9.21 久米


第4期倶楽部竜王戦5組決勝で、わたしの目の前で起こった事件です。(@_@)

対戦者は、新進気鋭のarikimedesさん。あれよあれよというまに決勝まで進まれ、本局の封じ手再開でも見事に勝利を納め決勝トーナメントに進まれました。(^-^)

BJさんの残り時間約8分。指し手は、arikimedesさんが▲6八金引と指したところです。ここでBJさん少考しているうちに、1分もたっていませんでしたが、なんと
  ### 先手の勝ちです。
  BJ> 「時間切れ負け」
のメッセージが出ました。観戦している何十人の皆さんも唖然。わたしも腰を抜かしてしまいました。!(゚口゚lll)

これが、上記のように、史上初の封じ手再開となった、BJさん「時間切れ」事件の全貌です。(^.^)
わたしの目の前で起こった事件なので、状況も大体わかりますので、この謎をずっと追っていました。
そして、ようやくある推論にたどりつきました。(‐_☆キラッ!

時間切れ負けのメカニズム

推論をお話しする前に、時間切れ負けがどのように起こるのかを下表で説明しておきます。

BJさんのPC   将棋対局サーバ   arikimedesさんや観戦者のPC
BJさんPCでJavaアプレットが
時間をカウントダウン
       
上記カウントダウンは
指し手を指すと止まるが
指さないと秒読み残りゼロで
投了コマンドをサーバに発信
投了コマンドを受信したら、
勝敗処理を実施。
と同時に対局者および観戦者に
投了したことを通知
### まで先手の勝ちです
が表示される。
次に間髪いれず
「時間切れ負け」のメッセージ
をサーバに発信
「時間切れ負け」メッセージを
対局者および観戦者に同報
BJ> 「時間切れ負け」
のメッセージが表示される。
AAA> えー
BBB> あれれ
CCC> どうしてー
のメッセージが表示される
「えー」「あれれ」「どうしてー」
を全員に同報
皆さん、Chatで「えー」「あれれ」
「どうしてー」としゃべる
AAA> えー
BBB> あれれ
CCC> どうしてー
のメッセージが表示される

推論

  1. BJさんは、この日、契約しているプロバイダーの調子が悪くて何回か切断していました。
  2. この対局は、何回目かの中断再開局でした。
  3. 中断された古いJavaアプレットは、ソフトで通常自動消滅させていますが。
  4. ブラウザが異常終了して中断した場合、古いJavaアプレットがそのまま動き続けてしまうことも考えられます。
  5. 本事件は、中断して消滅しなければならない古いJavaアプレットがそのまま働き続けていて、
  6. 考慮時間15分と秒読み60秒をカウントダウンしてしまい。(新しいアプレットで手を指してもカウントダウン止まらない)
  7. そこで、自動的に、投了コマンドを発生させてしまったのではないかと、推論しました。
  8. 時間切れ負けのメカニズム説明のように、投了は、その方のPCが「投了コマンド」を発行しないかぎり、サーバ側ではなにもしませんので、これ以外の原因は、ちょっと考えつらいです。

ブラウザが異常終了した場合、Javaアプレットの消滅を、どの程度まで支援してくれているのかは、ブラウザの内部プログラムによるので不明です。o(_ _)oパタッ

予防

そこで、このような異常事態を予防する方法は、

  1. 自ら中断した場合、ブラウザを全て閉じる。
  2. 可能であれば、PC再起動をする。

というようなことをすればいいかと思います。ただこのような問題が発生しやすいPCとまったく発生しないだろうPCがありますので、発生しやすい方だけでいいかと思います。

似たような現象が起きている場合があるので、とりいぞぎ私の推論を述べてみました。(^-^)/