見出し画像

10.無限ループで業務サーバを止めてしまったこと

 かれこれ20年も経つのだが、未だに忘れられない件。

 新人配属も終わりちょうど夏ごろだったか。初めての「プロジェクト」に参加させてもらい、プログラマー駆け出しだった頃のこと。

 駆け出しと言っても、初心者マークのヒヨッコが「現場」で仕事(のようなもの)をしているわけです。キーボードのブラインドタッチも満足にできなくて、1文字ずつ探しながらキーボードを打っていた頃です。
 そんな何もわかっちゃいない、何もできない甘ちゃんからすると、3年とか5年経ってる先輩が神々しく見えるわけです。サラサラとコードを書き、難解な用語(当時の自分にとっては)でリーダーと話をしているんです。
 そんな傍らで、入社1年目の「なんちゃって」エンジニアもどき(=私)が、あたふたとコードを書き(1行書くのに何分掛かってるんだくらいの歩みで)、そして、先輩に言われたとおりにFTPというツールを起動し、テキストエディタでコーディングしたファイルを、どこにあるのかもよくわかっていないサーバへアップロードをし、言われたとおりのURLにアクセスして画面表示を確認するわけです。
 今から思えば、なかなか恐ろしいことを1年生にやらせていたなぁ、と思うのですがね。。。

 そして事件は起きるのです。

 ある日、やっとの想いでコードを書き終えたのち、大してチェックもせずに「検証環境」と呼ばれる「場所」に、FTPというツールを使ってファイルをアップロード。
 そして、言われたとおりのURLにアクセスして動作確認を始めたところ、Windowsの砂時計がずっと回り続けて画面が表示されない。
 何度表示しても、砂時計が回り続けるばかり・・・。
やがて、FTPツールからも接続ができなくなり、にっちもさっちもいかなくなったところで漸く先輩に

「何か変なんです・・・」

と報告をした(嗚呼、なんという最悪の報告の仕方だろう・・・汗)。

先輩からリーダに報告が上がり、何をしたか事細かに報告を求められている傍で、先輩やリーダーガシャガシャと調査を始め、やがてソースコードを見ていた人から、

あー・・・。ループしてるな・・・。

という声が聞こえてきた。
 そうなのだ。ループしていたのだ。for文だかwhile文で、ループのExit条件を書いていなかったのだ。それが原因でプロセスがリソースをどんどん食い潰したのだ。

 リーダーが徐にお客様に電話をし、
 「すみません、うちの新人がアップしたコードがどうもループしていたようで、サーバのリソースを食い潰したようです。申し訳ありませんが、サーバの再起動をお願いできますか?」
とお詫びとお願いをしていた。

 今から思えば検証環境なのに、新人だった私は事態を深刻に受け取ってしまい、「お客様のサーバを止めてしまった=クビ?!」とまで考えてしまい、半泣き状態。どうしたらいいんでしょうか~?!と慌ててしまう始末。
今じゃ絶対ならないような慌てふためきようである。

 リーダーはケラケラと笑いながら「検証環境だったから大丈夫だよ」と言ってくれたが、コードミスについては確り注意を受けた。
そのとき言われたことを今でも覚えいている

for分やwhile文を書くときは、最初にExit条件を書け
括弧を開いたら、最初に閉じ括弧を書いておけ

と。

以来20年、このルールをずっと守っている。



この記事が気に入ったらサポートをしてみませんか?