L・トーバルズ氏、Linux 4.8に混入したバグに怒り

Liam Tung (ZDNET.com) 翻訳校正: 編集部

2016-10-06 12:11

 Linuxの生みの親であり、Linuxカーネルを最初に開発したLinus Torvalds氏は、カーネルバージョン4.8のリリース最終段階になって混入した「間抜けな」バグに怒りをあらわにしている。

 米国時間10月2日、Torvalds氏はLinuxカーネルのメーリングリストへの投稿で、Linuxカーネルバージョン4.8のリリースを発表した。その文面は、いくつかの「極めてささいな」問題が、8番目で最後となる4.8のリリース候補版(RC8)から持ち越されていることに触れた以外は穏やかなものだった。

 カーネル4.8では、Microsoftの「Surface 3」デバイスのタッチスクリーンと、「Raspberry Pi 3」のSoCのサポートなどが追加されている。

 しかし、4日になってTorvalds氏は再びメーリングリストに投稿し、トップカーネル開発者でありGoogleの従業員でもあるAndrew Morton氏がリリース候補版のぎりぎりになって追加したパッチを受理してしまったことを謝罪した。適切なテストを経ていないと考えられるこの変更には、カーネルパニックを引き起こすコードが含まれていたのだ。

 Torvalds氏は、この問題を引き起こしてしまった非の一部は自らにあるとしながらも、Morton氏によるぞんざいな作業と、変更による影響はほとんどないと同氏が判断した点について小言を述べている。

 Torvalds氏は「4.8のリリース直前にAndrewから送られてきた一連のパッチを適用してしまったことについて、本当に済まないと感じている。というのもこれによって問題が引き起こされたためだ。そしてその問題は今や4.8に含まれてしまっている(また、そのバグを引き起こしたゴミくずもstable(安定)と記されている)」と述べている。

 Morton氏の手による別件のバグ修正が「カーネルを殺した」と表現するTorvalds氏は、「(Morton氏が作り込んだバグは)本来修正しようとしていたバグそのものよりも明らかにひどい」と続けている。

 「私は、(カーネルに)追加されたこのひどいBUG_ON()マクロ(編集部注:あり得ないと考えられる条件が成立した際にカーネルパニックを発生させるためのマクロ)に反応するべきだった。カーネルを意図的に殺すコードの存在を許すようなばかげた理由など存在しないため、この間抜けなBUG_ON()という考え方を片っ端から削除しなければならなくなるんじゃないかと思っている」(Torvalds氏)

 そしてTorvalds氏は、Morton氏がしっかりとしたテストを実施していれば予想できたにもかかわらず、カーネルを殺すコードを記述しても問題ないだろうと考えた理由を知りたがっている(これはフェアな考えだと言えるだろう)。さらにTorvalds氏は、デバッグ目的でのBUG_ON()マクロの使用について、2002年の時点でカーネル開発者に警告していたことも指摘している。

 Torvalds氏は「そう、私は機嫌が悪い。これはリリース候補版の最終段階で発生した話であり、私はAndrewが出してくるものはもっとレベルが高いと考えていた。テストが十分でないことが明らかなコードに対して無節操にBUG_ON()を埋め込むという行為は*受け入れられない*ばかりか、*厳格なテスト*を実施せずにRC8の後にコードを送るという行為、今回が明らかにそのケースに相当するが、それも絶対に受け入れられない。ccタグにstableを追加するという行為も警告に値する」と記している。

 Morton氏はこうした批判を受け入れ、「明らかに何かがおかしい」と認めたものの、使用したのは「VM_BUG_ONであり、CONFIG_DEBUG_VMを指定して実行する人はほとんどいない」と述べ、影響はそれほど大きくないとした。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]