kledgeb UbuntuやLinuxの最新情報を紹介

Linux その33 - BLK-MQが原因か・ファイルシステムが破損する問題の修正へ

ファイルシステムが破損する問題の修正へ

先日紹介したext4ファイルシステムが破損する問題の調査が行われ、原因の特定と修正パッチの投稿が行われました。


  • Linux kernel 4.19でext4ファイルシステムが破損する問題

BLK-MQが原因か

この問題はext4の実装に起因するものではなく、「blk-mq(Multi-Queue Block IO Queueing Mechanism)」の実装に起因する問題であることが分かりました。
「blk-mq」はカーネルのブロックサブシステムであり、I/Oクエリーを分散させパフォーマンスの向上を図ります。

  • It's Looking Like The EXT4 Corruption Issue On Linux 4.19 Is Caused By BLK-MQ
  • The "EXT4 Corruption Issue" Has Been Fixed In Linux 4.20, Backport Pending To 4.19

この問題は「Linux kernel 4.19-rc1」で行われた修正で発生する問題であり、 「Linux kernel 4.19」及び開発中の「Linux kernel 4.20」で発生します。
またこの問題は「BLK-MQ」を使用している時に発生します。

加えて「BLK-MQ」の問題であれば、この問題はファイルシステムの種類に限定されません。
つまりext4以外でも発生する可能性が示唆されています。

特定の状況下でデータが破損

本問題を修正するパッチが投稿されました。

  • blk-mq: fix corruption with direct issue

問題の詳細は修正パッチ内のコメントに記述されています。

SCSIデバイスに直接リクエストを発行しデバイスからBUSYが返ると、リクエストをキューに入れて保留します。
しかしSCSIレイヤーはある特定コマンドのためにすでにSGテーブルのセットアップ等を行っています。
後でリクエストをマージする際、更新されたこれらの情報を使用せずその時の情報で処理を行います。
そのため本現象が発生します。

Linux kernel 4.20では適用済み

現在開発中の「Linux kernel 4.20」では、上記のパッチが適用されています。

  • Merge tag 'for-linus-20181205' of git://git.kernel.dk/linux-block

Linux kernel 4.19.8に適用か?

上記のパッチは「Linux kernel 4.19.7」のリリースに間に合いませんでしたが、次のリリースである「Linux kernel 4.19.8」に取り込まれる(バックポート)されるものと思われます。

Linux
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 26.04 その74 - Chromium 系ブラウザーにより、Qt6 で構築されたアプリがクラッシュする現象
    Qt6 で構築されたアプリがクラッシュする現象 Chromium 系ブラウザーにより、Qt6 で構築されたアプリがクラッシュする現象が報告されています。
  • Ubuntu 24.04 その104 - Ubuntu 26.04 LTS へアップグレードするには・アップグレードの注意事項
    Ubuntu 26.04 LTS へアップグレードするには 現在 Ubuntu 24.04 LTS を利用しているユーザーは、Ubuntu 26.04 LTS へアップグレードできます。
  • Ubuntu 24.04 その103 - Ubuntu 26.04 LTS へアップグレード可能に・2年分の変化が一気にやってくる
    Ubuntu 26.04 LTS へアップグレード可能に 2026年9月29日、Ubuntu 24.04 LTS から Ubuntu 26.04 LTS へアップグレード可能になりました。
  • Ubuntu 26.10 その35 - RISC-V 向け Ubuntu Desktop 登場
    RISC-V 向け Ubuntu Desktop 登場 Ubuntu Desktop 26.10 では、RISC-V 向けデスクトップイメージがリリースされます。
  • Ubuntu 26.10 その33 - Ubuntu 26.10 β版がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.10 β版がリリースされました 2026年10月1日、Ubuntu 26.10 β版 がリリースされました。
  • Ubuntu 26.10 その34 - Ubuntu と Rust に対する取り組み(2026年10月)
    Ubuntu と Rust に対する取り組み 2026年10月1日、Ubuntu と Rust に対する取り組みが以下で紹介されました。
  • Ubuntu 26.10 その38 - Ubuntu 26.10 がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.10 リリース 2026年10月15日、Ubuntu 26.10 がリリースされました。
  • Linux その440 - uutils coreutils 0.11.0 でコマンド実行時のエラーメッセージを大幅に改良
    コマンド実行時のエラーメッセージを大幅に改良 uutils coreutils 0.11.0 で、コマンド実行時のエラーメッセージが大幅に改良されました。
  • Ubuntu 26.04 その76 - CVE-2026-92392 含む curl の脆弱性22件修正・アップデートを
    curl の脆弱性22件修正 CVE-2026-92392 含む22件の curl の脆弱性に対応したセキュリティーアップデートがリリースされました。
  • Ubuntu 26.10 その32 - Snapdragon X2 に対応した Ubuntu 26.10 実験版登場
    Snapdragon X2 に対応した Ubuntu 26.10 実験版登場 2026年9月29日、Snapdragon X2 に対応した Ubuntu 26.10 実験版が登場しました。
記事のピックアップ
オプション