システムエンジニアのKさんが体験したお話です。
当時、Kさんは翌日に控えた自作業務ツールの本番リリースのため、深夜のオフィスに一人残って最終デバッグを行っていました。
テストは順調に進み、時刻は深夜2時を過ぎた頃。
最後のエッジケーステストを実行した瞬間、画面に真っ赤な文字でエラーメッセージが弾き出されました。
Fatal Error: Stack overflow detected.
コールスタックが溢れてプログラムが強制終了する、典型的な無限ループのエラーです。
しかし、Kさんは首を傾げました。その直前まで同じ操作をしていても一度も起きたことがなかったからです。
気を取り直して再実行すると、やはり同じ場所でピタリと落ちます。まさに再現性100%。
「また深夜のバグ探し(デバッグ)か…」とため息をつきながら、Kさんはスタックトレースのログを開きました。
通常、呼び出し履歴には関数名が順番に並ぶはずです。
しかし、画面にずらりと並んでいたのは、身に覚えのない不気味なログでした。
存在しないメモリ領域からの呼び出し。
割り当てられていないはずのアドレス(0x00000000)が、まるで何者かに割り込まれたかのように無限に積み重なっていたのです。
「メモリリークか…? いや、なんで null アドレスを呼んでるんだ?」
気味悪さを感じつつも、Kさんはブレークポイントを張ってステップ実行でコードを1行ずつ追うことにしました。
キーボードのF10キーを叩くたび、1ステップずつ処理が進みます。
「お願いだから落ちないでくれ……」
祈るような気持ちでキーを連打していたKさんでしたが、ふと違和感を覚えました。
F10キーを押して不審な呼び出し(Unknown Address)を通るたびに、ディスプレイの明度がほんの少しずつ、暗くなっているのです。
最初は目の錯覚かと思いました。しかし、10回、20回とステップを進めるごとに、モニターのバックライトがじわじわと光を失い、画面全体が黒ずんでいきます。
モニターの設定を確認しても、輝度は100%のまま変更されていません。
部屋の明かりは点いているのに、自分の目の前の画面だけが、まるで闇に呑み込まれていくかのように暗くなっていくのです。
そして、スタックの深さが限界に達しようとしていたその時。
真っ黒に近い状態まで減光した画面の奥、暗転した液晶の反射の中に、Kさんは「見てはいけないもの」を見ました。
自分の顔のすぐ後ろ、肩越しに、真っ黒な影のようなものが画面を食い入るように覗き込んでいるのが写り込んでいたのです。
その影は、KさんがF10キーを押すリズムに合わせて、ゆっくりと首を傾げていました。
「ひっ……!」
Kさんは悲鳴を上げ、マウスを振り払うようにしてPCの電源ボタンを長押しし、強制終了させました。
バツンと音を立てて画面が消えると、そこにはただ、冷や汗だらけの自分の顔だけが写っていました。
翌朝、恐怖で震えながら出社したKさんは、チームの先輩に昨夜の出来事とエラーログを見せました。
すると、ログを見た先輩の顔色がガラリと変わりました。
「…Kくん。このツール、ベースにした旧バージョンのコードってどこから持ってきた?」
「えっ…サーバーのアーカイブに残ってた、3年前の共有フォルダからですが…」
先輩は深くため息をつき、静かに言いました。
「あのコード、3年前にこの席で締め切り前夜に過労で倒れて、そのまま亡くなったAさんが最後に書き残した未完成のソースだよ。『終わらない、終わらない』って言いながら、ずっとデバッグしてたんだ……」
Kさんが使っていたPCは、まさに当時Aさんが使っていた実機そのものでした。
その後、そのソースコードは完全に破棄され、ゼロから書き直されることになりました。
今でも深夜のオフィスで一人デバッグをしていると、どこからか「カチ…カチ…」とF10キーを叩く乾いた音が聞こえてくることがあるそうです。



0 件のコメント:
コメントを投稿
I'm sorry, Japanese text only.
荒らし目的と思われるコメントは気づき次第対処します。