もうあなたを困らせることはありません: ツールは、実稼働中のJavaバイトコードからフリーズを引き起こすバグを取り除きます

Table of Contents

もうあなたを困らせることはありません: ツールは、実稼働中のJavaバイトコードからフリーズを引き起こすバグを取り除きます

ノースカロライナ州立大学と IBM リサーチの研究者らが、Java プログラムのハングの原因となる一般的なコードパターンの大部分を自動的に修復できるソフトウェア フレームワークを考案しました。

来週開催されるバーチャルクラウドコンピューティングシンポジウム(SoCC '20)で発表される論文の中で、ノースカロライナ州立大学のコンピュータサイエンティストであるJingzhu He氏、Xiaohui Gu氏、Guoliang Jin氏、そしてIBMリサーチのTing Dai氏が、HangFixの概要を説明します。HangFixは、実稼働クラウド環境におけるJavaバイトコードにパッチを適用し、フリーズを引き起こす障害を排除するソフトウェアです。論文では、 The Registerをはじめとする多くのメディアを情報源として引用しています。

ハングバグとは、システムが応答しなくなる原因となるコードエラーです。クラッシュバグは悪用される可能性があるため危険ですが、ハングバグは単にイライラさせる程度で、無限ループによるシステム停止を引き起こしたり、一時的に動作を遅くしたりするだけです。

「HangFix:クラウドシステムの運用におけるソフトウェアハングバグの自動修正」と題された論文の著者らは、ハングバグは通常、診断情報をほとんど生成しないため、発見が難しい傾向があると指摘しています。また、予期せぬ実行時データ破損や運用中に発生するプロセス間通信障害が原因であることが多いため、コードテストで検出することも困難です。

Java、写真はShutterstockより

オラクルのJava 15が「我々はナンバーワン」の旗を振りながら街に乗り込み、25周年の誕生日パーティーを要求

続きを読む

また、コストも高額になる可能性があります。2017年にブリティッシュ・エアウェイズがサービスを停止し、同社に推定8,000万ポンド(約1億400万ドル)の損害を与えた事件は、データセンターのフェイルオーバーによるデータ破損後に発生したハングアップバグが原因であると、この論文は述べています。同様に、Netflix、Airbnb、IMDbなどの顧客に影響を与えた2015年のAmazon DynamoDBの5時間にわたる障害も、ハングアップバグが原因で、不適切なエラー処理によってメタデータサーバーに過負荷がかかり、リクエストが多すぎることが原因とされています。

「HangFixのプロトタイプを実装し、10種類の一般的なクラウドサーバーシステム(Cassandra、HDFS、Mapreduce、HBaseなど)で再現された42件の実際のソフトウェアハングバグを用いてシステムを評価しました」と論文には記されている。「HangFixは、開発者が手動で修正すると数日かかるバグを40件も数秒で修正することに成功しました。」

残りの 2 つのバグは、人間のプログラマーの助けを借りて修正する必要がありました。

HangFixは、これまでに確認されている237種類のハングバグのうち76%を認識できると同社は主張している。このシステムは、フラグ付けできるバグのうち、あらゆるケースにおいてプログラムのハングを防止し、75%の確率で根本原因を完全に修復することができる。

「残っているハングバグのほとんどは並行性と同期性のバグであり、他の並行性バグ検出ツールで解決できる」とノースカロライナ州立大学のコンピュータサイエンス教授、Xiaohui (Helen) Gu氏はThe Registerに語った。

HangFix は、ハング バグを引き起こす可能性のある 4 つのコード パターン (ループ内の予期しない関数の戻り値、ループ内の誤って構成されたパラメーター、ループ内の不適切な例外処理、ループなしでのブロック操作) を対象としています。

Gu氏によると、米国立科学財団の助成金を受けて開発されたHangFixをオープンソースツールとしてGitHubで公開する予定だという。彼女はDevOps企業InsightFinderの創設者兼CTOでもあり、同社はこのソフトウェアを自社ツールに統合する取り組みを進めている。

HangFix は Java アプリケーション用に設計されていますが、他のプログラミング言語にも適応できるはずです。

「この技術はJavaに限ったものではありません」とGu氏は述べた。「私たちの分析結果を静的バイナリコード解析ツールに組み込めば、同じ技術をあらゆる言語に適用できます。」®

Discover More