2011-01-23

とある大規模インフラの基幹システムなんだけど、納品して以来、誰にも原因が分からない不具合が続いていたのでした。よく品質保証部を通ったなと不思議に思ってるんですがね。

現地で動かしてみないと分からない、って奴かな?

所詮は外注が格安で作ったシステムからこんなもんなんだろう。しかし、数年もほったらかしにしておく神経がよく分からない。

で、今回、そのシステムの改修で俺が担当プログラマーになったわけだが、組み合わせ試験をしていると、出るんだわ、この現象が。現象を見ていて再現条件を想像。結果、ある条件をそろえると100%再現。復旧させるには、リブートさせるか、ある条件を1秒以内に整えれば復旧する。

なんで「誰にも分からない」のかよく分からない。見てて動作が変だったから、LANアナライザ突っ込んでハンドシェーク見てたら仕様書通りになってねーでやんの。試験したのか?これ。

そこからスタートして、2つのシステムを行ったり来たりしながら逆に遡る事8時間。原因発見

さて、問題は、今回の受注範囲に関係無いんだよな、これ。直すべきか、ほっとくべきか。

でもなー、プログラムがなー、糞すぎるんだよなー。直したくねぇ。

何しろ、ループ変数のiがグローバル変数になっているプログラムなんだもの。どこのキ印だ。

  • こういう話を聞くたびに「俺を採用しろ」と思うが、 まあ年齢的な制限には引っ掛かっているか。

  • あー 関数の中に static 変数名 って書くとグローバル変数になるって 知らないで 書いていてバグ出した人を知っている。 見つけたときにキレそうになった。 ポジションにもよる...

    • 関数の中に static って書くとグローバル変数になるプログラミング言語を知らないので ぜひその言語を教えてください ついでにグローバル変数の定義を述べてください

      • 失礼 スコープグローバルではないので、グローバル変数というのは、語弊があるな。寿命が恒久の意味 お詫びのコード template<typename T> T * getT(){  static T globalMem;  return &globalMem;...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん