たった1桁の数字によるシステムエラーで飛行機が飛ばない!?

国内で一番混雑している空港は羽田空港ですが、その羽田空港の1日あたりの離陸と着陸はそれぞれ500便ほどと言われています。航空会社が運航している時間帯を概ね朝6時~夜10時の16時間と仮定すると、平均して1時間あたり60便ほどの離発着があるということに。

もちろん早朝や深夜は離発着便が少なく、朝7~9時の出発と夕方の到着は需要の高い時間帯となりますので、60便よりも多い離発着がある時間帯もあるということ。そんな離発着の誘導は航空管制として行われており、近年は管制もヒューマンエラーを防ぐためにほとんどがシステム化されています。

2014年12月の午後、航空管制システムの不具合でイギリス領空が1時間近くにわたって混乱状態となりました。

着陸の許可を待つ多くの飛行機が上空を旋回し、地上でも多くの飛行機が離陸を中止することを余儀なくされ、出発を待つ乗客や出迎えの多くの人々が心配そうにニュースで状況を確認していました。

そもそもシステム不具合の原因は何だったのでしょうか?

イギリスの航空交通を管制するNATS(National Air Traffic Servie)によると、「追加の端末の使用を開始したとき、それまでに確認されていないソフトウェアの問題があった。それが原因で、飛行計画を処理するコンピュータが事実上オフラインになってしまった」とのことです。

また、今回は幸い45分後にはシステム全てが復旧し、予備計画を実行することで空の安全を守ることができたとのことで、この問題については修正済みで再発の恐れはないことを強調しています。

今回の事象の根本的な不具合の原因は、ほぼ全面的にソフトウェアの障害によるものとされていますが、たった1行の不適切なコードが原因で飛行計画システムがオフラインになてしまったということ。

本件に関して、イギリスの民間航空局も今回の事象に関する調査を実施し、2015年2月に中間報告書を発表しています。

この報告書の内容は以下のとおりとなっています。

航空機のパイロットが使用する飛行計画は、「System Flight Server(システムフライトサーバ)」に送信。SFSは障害に備えて2つのチャネルを備え、過負荷を防止するため、共有リソースに制限を設定。

そんな中、SFSが適切な飛行計画を適切なワークステーションに送信するために用いられる識別子である「Atomic Function(アトミック関数)」の最大値が誤って設定され、本来であれば2014年11月のシステム更改に伴って193に変更されるはずの数字が151のままになっていた。

管制官の1人が「セクター選択」ボタンを押し、ワークステーションが「監視モード」(別のワークステーションで表示されている画面を監視できるようにする機能)に移行しようとした。

監視モードを有効にする際、SFSはアクティブになっているAtomic Functionの数をチェックする仕様になっているが、このときハードコーディングされた最大値151より多い数のAtomic Functionがアクティブになっていた。

このようなとき、SFSは、誤ったデータを管制官のワークステーションに送信してしまうのを防ぐため、シャットダウンするように設計されている(飛行機が飛行コースから外れることも、空中衝突や墜落といったさらに深刻な事態も、誰も望まない)。

同じコードを実行していた予備のSFSにオペレーションが移行したが、こちらでもワークステーションを「監視モード」にするコマンドが入力されたため、同じエラーが発生。

さらに中間報告書によると、今回のシステムフライトサーバの不具合は史上初めてアクティブシステムと予備システムの両方に同時に障害が発生したものだということです。

NATS社の最高経営顧問であるDeakin氏によると、同社の管制システムがヨーロッパの競合他社におくれを取らないよう、新技術に莫大な投資を行っているといいます。

さらにDeakin氏は、これからの5年間でインターネットベースのシステムへの移行を進めていくことで、現行システムよりはるかに対障害性に優れたものになると自信をのぞかせています。

今回の事象では不幸中の幸い1時間程度で復旧できたため大事には至りませんでしたが、リカバリーに時間がかかれば空港閉鎖になり、当日のみならず数日間主要空港に飛行機が飛ばないなんてことにもなりかねません。

システム上はごくごく小さなエラーや障害であっても、航空路線という交通を司っている以上、運航および利用する乗客に与える影響は大きなものになるということがいえるでしょう。

関連記事

ページ上部へ戻る