概要
- DOOMエンジン の変数オーバーフロー検証実験の報告
- 約 2年半 連続稼働後のクラッシュ観測
- 実験環境や方法の詳細説明
- 変数オーバーフローが 現実に発生 した証明
- 結果から得られる教訓と考察
DOOMエンジン変数オーバーフロー長期実験
2年半前、DOOMエンジンの挙動に興味を持ち、長期実験を開始
デモ再生中にカウントされる 変数 が、次のデモ開始後もインクリメントされ続ける設計
この変数は 前回値 と比較されており、通常運用ではオーバーフローの心配は少ない設計
しかし、理論上は オーバーフロー が発生し、ゲームがクラッシュする可能性を計算
当時の計算では 約2年半 でオーバーフロー到達と予測
実験環境として、小型PDAにDOOMをインストール
電源はDIYの 18650バッテリーUPS を使用し、ルーターのUSBポートから 5V給電
システムを常時稼働させ、長期間放置運用
本日、PDAに ポップアップ が表示され、ゲームがクラッシュしたことを確認
クラッシュ発生時刻は、 2年半経過直後 であり、理論値とほぼ一致
これにより、DOOMエンジンの該当変数が 実際にオーバーフロー し、ハードクラッシュを引き起こすことを実証
クラッシュ時の写真(IMG_20250916_224553.jpg)が証拠として残存
実験から得られる教訓と考察
- 理論的なバグ も、長期運用や特殊状況下では現実化する可能性
- 変数管理や オーバーフロー対策 の重要性を再認識
- ハードウェアや電源供給の信頼性も、長期実験には不可欠
- ドキュメント化の重要性 :計算や設定を記録しておくことで、後の検証や再現が容易
- ソフトウェア設計時、 極端なケース も想定して堅牢性を高める必要性
2038年は楽しそうだね。