Linus Torvaldsがカーネル開発者メーリングリスト「LKML.org」に怒りのファッキン投稿をすると、やはりこのコラムとしては注目せざるを得ない。今回、Linusは何(or誰)に激怒しているのだろうか。まずは4月2日(現地時間)のLinusによる投稿の一文をご覧いただきたい。
- LKML: Linus Torvalds: Re:[RFC PATCH] cmdline: Hide "debug" from /proc/cmdline
ここでLinusが"Kay"と呼んで罵倒しているのはsystemdの開発者として有名なRed HatのKay Sieversである。デバイスドライバのマネジメントシステムなどで大きな貢献を果たしてきた人物で、"GKH"ことGreg Kroah-Hartmanとともにudevを考案したことでも知られる。ちなみに上の投稿LinusからでGregと呼ばれているのもGKHだ。
ではLinusはなぜSieversにf*ckingを投げつけるほど怒っているのか。それはLinusが指摘している通り、systemdの重大なバグが一向に改善されないことにある。systemdは、近年、RHELなどメジャーなディストリビューションでの採用が進んでいるシステム起動時の初期化プロセスだが、systemdはある特定のシステム上でカーネルコマンドラインに"debug"という文字列を見つけると、すぐさま反応してデバッグメッセージを送ってしまう。このため大量のデバッグメッセージでdmesg(カーネルのリングバッファ)が埋め尽くされ、ログインできなくるという問題が生じていた。
これに業を煮やしたある開発者(Steven Rostedt)がSieversをはじめとするsystemd開発者に「debugなんて一般的(generic)すぎる文字列に反応してパースするのはやめてほしいんだけど」と要望するも、Sieversから「同意できないね。ジェネリックなものはジェネリックなんだ。最初のユーザ(カーネル)にその言葉の権利があるわけじゃない。仕様だからしょうがない」と突っ返されている。
- Bug 76935 - Do not parse "debug" command line parameter
RostedtがLKMLでこれを報告するとLinusは大激怒、「メンテナーが自らに起因するバグを治そうとしない、そしてほかのメンバーに直させている ─自分のケツを自分で拭けないヤツが書いたコードなんて、僕は絶対にマージしない」と言い放ち、最後にSieversに向かって「Kay、もう一度だけ言っておく。お前が引き起こした問題はお前が解決しろ。"僕は好きなことをなんでもやり散らかすけど、後始末は君たちがしてね"という態度は絶対に認めないからな」と強い口調で警告している。
もっともLinusはその後の投稿で、systemdのようなあシステム起動サービスが特定のフラグに反応してパースすることについては「たとえ"quiet"でも"debug"でも、本当にそれがカーネルに対してメッセージを示しているフラグならパースしたってかまわない。/proc/cmdline(カーネルの起動時に渡されるパラメータ)はそのための存在」としている。問題なのは「世界は俺様を中心に回っていると考えているひとりのシステムサービス開発者のエゴによるバグなのに、それを平然と直さない」ことであり、GKHに対しても「GregはKayを甘やかし過ぎ」と手厳しい。Sieversが一連のLKMLの投稿を見ているのかはわからないが、このバグがマージされた結果が早く反映されることを望みたい。