2018/01/27 - プログラマと推理力

第9回タイピングサミットで発生していた「一瞬でワードが消える問題」が解決。先週からずっと、サミットの時に取ってもらったリプレイを唯一の手がかりにして調査をしていた。

リプレイを見ていると、どうも他の人が打ち終わった次のフレームで、前回のワードを打ち終わって次のワードに行ってしまっている。なので、まずはラグを疑ってラグをシミュレートしてみたが、全然再現しない。

次にログを増やして何度もリプレイしていると、1人だけフレームがずれていることが分かった。でも入力不能時間に入力してみたりワード送信メッセージを遅延させてみたり、あらゆることをやって、再現しない。

結局、一番最初からフレームがずれていることが分かって、対戦開始画面でEnterが連打されているのが原因だと分かった。Enterを押す度にメッセージが送信されて、フレームがずれていた。

なかなか再現しないバグってのはたくさん経験したが、だいたい再現しなくていろんな特殊な条件を試しても再現せず、結局普通のことが原因なことが多い。今回もEnterを何度か押すという普通にやりがちな操作。少ない手がかりから原因を推理して、シンプルな結論を導き出していくっていうのはプログラミングの醍醐味ですね。プログラマに推理力は必須。

コメントする