比較的平穏な金曜日(英国時間2014年12月12日)の午後、英国の領空が1時間近くにわたって混乱状態に陥った。
航空管制システムの不具合だ。上空では多数の飛行機が旋回し、地上ではさらに多くの飛行機が離陸を中止してゲートで待機した。膨大な数の乗客が辛抱強く最新のニュースを待っていた。
何が起きたのか。たった1行の不適切なコードが原因で、重要な飛行計画システムがオフラインになったのだ。
航空管制システムの問題は、(どんな交通手段でも同じだと思うが)ごく小さな障害が大幅な遅延を引き起こすことがある、ということだ。飛行機の場合、それは何日分ものバックログやそのほかのさまざまな問題につながることもある。そのような事態になれば、英国の主要なハブ空港が通常のスケジュールに戻るまでに、約1週間を要するだろう。
英民間航空局は英国領空を混乱させた12月12日の障害について調査を実施し、2015年2月9日に中間報告書を発表した。詳細を網羅した最終的な報告書は5月中旬に発表予定だが、今回の問題の根本的な原因は、ほぼ全面的にソフトウェアの障害だったとされている。
英国の航空交通を管制するNational Air Traffic Service(NATS)の広報は非常に苦しい対応を迫られた。同社の最高経営責任者(CEO)であるRichard Deakin氏は9日午後、さっそくBBC Newsに出演し、不安の払拭に努めている。
「追加の端末の使用を開始したとき、それまでに確認されていないソフトウェアの問題があった。それが原因で、飛行計画を処理するコンピュータが事実上、オフラインになってしまった」。Deakin氏はこのように説明した。
「幸い、45分後にはすべてが復旧した」(Deakin氏)
同氏は、「予備計画を実行」し、空の「安全は守られた」と述べた。
しかし、Deakin氏は厳しい現実も認めている。同氏の説明によれば、スワンウィックにあるNATSのメインの指令センターでは、50種類のシステムが400万行のコードを実行しているが、今回の問題の原因はその中のたった1行のコードだったという。
同氏は、問題は「修正」済みと主張し、再発することはないと述べた。
英民間航空局の中間報告書には、次のように書かれている。
航空機のパイロットが使用する飛行計画は、「System Flight Server(システムフライトサーバ)」に送られる。SFSは障害に備えて2つのチャネルを備え、過負荷を防止するため、共有リソースに制限を設けている。
そんな中、SFSが適切な飛行計画を適切なワークステーションに送信するために用いられる識別子である「Atomic Function(アトミック関数)」の最大値が誤って設定され、本来であれば2014年11月のシステム更改に伴って193に変更されるはずの数字が151のままになっていた。
管制官の1人が「セクター選択」ボタンを押し、ワークステーションが「監視モード」に移行しようとした。別のワークステーションで表示されている画面を監視できるようにする機能だ。監視モードを有効にする際、SFSは、アクティブになっているAtomic Functionの数をチェックする仕様になっているが、このときハードコーディングされた最大値151より多い数のAtomic Functionがアクティブになっていた。
このようなとき、SFSは、誤ったデータを管制官のワークステーションに送信してしまうのを防ぐため、シャットダウンするように設計されている(飛行機が飛行コースから外れることも、空中衝突や墜落といったさらに深刻な事態も、誰も望まない)。
同じコードを実行していた予備のSFSにオペレーションが移行したが、こちらでもワークステーションを「監視モード」にするコマンドが入力されたため、同じエラーが発生した。
中間報告書によると、システムフライトサーバの「歴史上初めて」、アクティブシステムと予備システムの両方に同時に障害が発生したという。
原因はあの1行のコードだとDeakin氏と述べた。同氏は、そのコードが1990年代からシステムに存在していたことを認めた。Deakin氏によると、NATSはシステムが欧州の競合他社に後れを取らないよう、新技術に「莫大な投資」を行っているという。
「これからの5年間で、インターネットベースのシステムへの移行を進めていく。このシステムは非常に現代的で、現行のシステムよりはるかに対障害性に優れている」(Deakin氏)
提供:NATS Holdings
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。