F氏が手がけたエキセントリック・コード

F氏が手がけたエキセントリック・コード

次に紹介するのは、大規模システムのデータベースで起こった怖い話だ。この話を聞かせてくれたのは、30代 プロジェクトマネージャのE氏。彼は、データベーステーブルのデッドロックが頻繁に発生すると報告を受け、調査を開始したという。

「弊社が手がけていた大規模システムの導入に向けて、テストを行っている最中の出来事でした。そのとき私は別のプロジェクトに参画していたのですが、急遽呼び出され、対応に当たってほしいと指示されました。

システム構築の指揮をとっていたのは私の同期のF氏で、どうやら彼が担当したプログラムが頻繁にデータベーステーブルのデッドロックを起こしていたようでした。あいにくF氏は季節はずれのインフルエンザでダウンしており、問い合わせても明確な答えがでてきません。

導入の期日が迫っていることから、私が担当していたプロジェクトを外れて調査を行うことになりました。さらに10数人の技術者を集めて調査チー ムを立ち上げ、2週間以上を掛けて、データベース周りはもちろん、システムのハードウェア環境までつぶさに調査することになったのです」


「調査の結果、システムのハードウェア構成については、該当プロジェクトの大きさからいえば問題ないものでした。またデータベース周りについても、特にデッドロックの原因となりそうなものはみつかりません。

最終的に、F氏が自ら手がけたプログラム本体が『怪しい』という結論に至りました。そこで、F氏の書いたプログラムのソースコードをみたところ、頭を抱えたくなりました。

彼の書いたコードでは、カーソルや不等号、for文を組み合わせた、まさに『エキセントリック』としかいいようがない分岐処理が行われていました。通常、同様の処理をさせるためならば、IF文を使って単純に記述できるはずのものです。

このエキセントリックなコードが使われている部分でオーバーヘッドが多発し、それがデッドロックの一因となっていることが判明したわけです。

後日、体調が戻って復帰したF氏にこのコードについてたずねたところ、『プログラムを一行減らすことができて、嬉しかった』とばつが悪そうな顔で応えてくれました。

…10数人の調査人員と工数の無駄が、ただ悲しい出来事でした」

F氏本人は「一行コードを減らせて喜んだ」ことが、結果として多数の人々の手を煩わせ、あわや納入に間に合わない、という状況を生んでしまったのである。自分の自己満足で他者の足を引っ張っていないか、考えさせられる怖い話だ。

続いては、予期せぬ設計変更が招いたバグ話を紹介する。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30