2015-03-09

ChromiumがLinuxカーネル3.17より前のサポートを打ち切り

Chrome/Chromium To Require Newer Version Of Linux Kernel - Phoronix

ChromiumがLinuxカーネル3.17以前のサポートを打ち切るようだ。

というのは釣りタイトルだが、Linuxカーネル3.16までで、最新のChromiumを使うと、ブラウザー拡張がインストールできないという問題がある。この理由は、Linuxカーネルのサンドボックス機能であるseccompに最近入ったTSYNC(SECCOMP_FILTER_FLAG_TSYNC)をChromiumが使っているためだ。

興味深いは、LinuxカーネルにTSYNCをいれたのは、Chromium開発者で今はGoogle社員でもあるKees Cookだ。Ubuntuの12.04と14.10のLinuxカーネルには、TSYNCをbackportするパッチがあたっているが、これもKees Cookが用意したらしい。

これは適切に情報共有されなかったらしく、かやの外の人間は、最新のChromiumが動かなくなった理由を、手探りで解明する必要に迫られた。

Issue 758063005: Linux sandbox: report TSYNC status in chrome://sandbox - Code Review

さて、ChromiumがLinuxカーネル3.17以上を必要とするようになったというバグ報告は、WontFixとされてしまった。なぜならば、「これは技術的にはregressionではあるが、ユーザーにはカーネルのアップデートという、十分にリーズナブルなworkaroundが存在するから」だそうだ。はたして、本当に十分にリーズナブルだろうか。

Linuxカーネル3.16というのは、去年リリースされたばかりのだいぶ新しいバージョンである。3.17以上を要求するのはあまりにも難しい。3.17以前のカーネルでChromiumを使うには、TSYNCのbackportが必要だが、少なくともDebianは、backportに消極的のようだ。

Debian 8/jessie - SECCOMP_FILTER_FLAG_TSYNC

2 comments:

NyaRuRu said...

このニュースは,Phoronix をはじめとして各種ニュースサイトに誤解された形で広まっているという指摘があります.
http://www.phoronix.com/forums/showthread.php?115662-Chrome-Chromium-Will-Support-Older-Non-TSYNC-Linux-Kernels&p=477145#post477145

Chromium-dev の以下のスレッドも参考になるかもしれません.
https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/4WBMtXU5mfo

世の中には,サポートされていないシステムコールに対してなぜか ENOSYS も EINVAL も返さないカーネルが出回っていて,結果として assert に引っかかってしまうどうしようというのが https://crbug.com/439795 で本来扱おうとしていた内容のようです.
実際これがカーネル側のバグであっているのなら,カーネルのアップデートによって修正することが可能という主張はある程度リーズナブルな主張に聞こえます (ここで求められている修正は,TSYNC をバックポートすることではなく,戻り値を変更することです)


とはいえ,だいぶ反響が大きかったようで https://crbug.com/439795 は一旦リオープンとなったようでした.

NyaRuRu said...

おっとすみません,今回の件は http://crbug.com/401655 の方でした.