web-dev-qa-db-ja.com

スリープからの復帰時のUbuntu 18.04エラー:スワップデバイスの読み取りエラー

ラップトップが数時間スリープモードになった後、セッションを再開しようとすると、次のエラーが表示されます。

スワップデバイスの読み取りエラー

ログイン画面がこの出来事をロードするのに約30秒かかります。ログインすると、画面が1〜2回空白になり、プログラムが開かなくなります。 「システムの問題が検出されました」というプロンプトが表示されます。 [レポートを送信]をクリックすると、別の通知がポップアップ表示されます。

「Xorg」プログラムが予期せず終了しました。コンピューターには、問題を自動的に分析してレポートを開発者に送信するための十分な空きメモリがありません。

これまでに試したのは、使用可能なスワップスペースを増やすことです。最初は約2 GBでしたが、9 GBの別のスワップファイルを作成しました。これは役に立たなかった。クラッシュ後の占有スワップ領域(swaponコマンドによる)は常に約170MBです。

セッションを再開するときのDMESGは、スワップデバイスの読み取りエラーまでは次のとおりです。

    
 [64046.474054] ACPI:低レベルのレジューム完了
 [64046.474162] ACPI:EC:EC開始
 [64046.474162] PM:プラットフォームNVSメモリの復元
 [64046.475139 ]非ブートCPUの有効化... 
 [64046.475196] x86:SMP構成のブート:
 [64046.475196] smpboot:Node 0プロセッサー1 APIC 0x2 [.____のブート。 ] [64046.475663]キャッシュ:親cpu1はスリープしてはいけません
 [64046.475859] CPU1は起動しています
 [64046.475910] smpboot:Node 0プロセッサー2 APIC 0x4 
 [64046.476330]キャッシュ:親cpu2はスリープしてはなりません
 [64046.476506] CPU2は起動しています
 [64046.476539] smpboot:Node 0プロセッサー3 APIC 0x6 
 [64046.477071]キャッシュ:親cpu3はスリープしてはいけません
 [64046.477255] CPU3は起動しています
 [64046.477274] smpboot:Node 0プロセッサー4 APIC 0x1 
 [64046.477721]キャッシュ:親cpu4はスリープしてはいけません
 [64046.477922] CPU4は起動しています
 [64046.477947] smpboot:Node_プロセスを起動していますまたは5 APIC 0x3 
 [64046.478371]キャッシュ:親cpu5はスリープしてはなりません
 [64046.478571] CPU5は稼働しています
 [64046.478591] smpboot:ブート中Node 0プロセッサー6 APIC 0x5 
 [64046.479018]キャッシュ:親cpu6はスリープしてはなりません
 [64046.479229] CPU6は稼働しています
 [64046.479247] smpboot:ブート中Node 0プロセッサ7 APIC 0x7 
 [64046.479675]キャッシュ:親cpu7はスリープしてはいけません
 [64046.479899] CPU7は起動しています
 [64046.485913] ACPI:システムスリープ状態S3 
 [64046.639206] ACPI:EC:イベントのブロック解除
 [64046.639711] sd 2:0:0:0:[sda]起動ディスク
 [64046.873289] usb 1-11:完全リセット- xhci_hcd 
 [64046.976869]を使用したUSBデバイス番号2の速度ata4:SATAリンクダウン(SStatus 4 SControl 300)
 [64046.976892] ata2:SATAリンクダウン(SStatus 4 SControl 300)
 [64047.149289] usb 1-6:xhci_hcd 
 [64047.437370] psmouse serio1:synaptics:照会された最大座標:xを使用して高速USBデバイス番号40をリセット[..5660]、y [..4570] 
 [64047.476302] psmouse serio1:シナプス:クエリされた最小座標:x [1364 ..]、y [1284 ..] 
 [64047.922603] OOMキラーが有効。
 [64047.922605]再起動タスク...完了。
 [64047.928727] thermal thermal_zone1:サーマルゾーンの読み取りに失敗しました(-61)
 [64047.930036] Bluetooth: hci0:ブートローダーリビジョン0.0ビルド2週52 2014 
 [64047.935036] Bluetooth:hci0:デバイスリビジョンは5 
 [64047.935037] Bluetooth:hci0:セキュアブートが有効です
 [64047.935038] Bluetooth:hci0:OTPロックは有効です
 [64047.935038] Bluetooth:hci0:APIロックは有効です
 [64047.935039] Bluetooth:hci0:デバッグロックは無効です
 [64047.935040] Bluetooth: hci0:最小ファームウェアビルド1週10 2014 
 [64047.935042] Bluetooth:hci0:検出されたデバイスファームウェア:intel/ibt-11-5.sfi 
 [64047.944372] PM:サスペンドexit 
 [64048.050329]スワップデバイスの読み取りエラー(8:0:1543400288)
 [64048.460888] [drm] RC6 on 

他の情報が必要な場合はお知らせください。

11
Vedant

現在使用しているUbuntu 18.04カーネルには、かなり重要なバグ修正がありません。

これに対する修正は、アップストリームLinuxカーネルバージョン4.16.8に既に存在します。 (サスペンドバグは、カーネルバージョン4.15で事実上発生し始めました)。 Ubuntuはアップストリームからこの小さなパッチを選択するだけです。このバグにより、サスペンド直後にXorgがクラッシュすることがよくあります。つまり、グラフィカルログインセッション全体がクラッシュします。

このバグはしばしば発生することに注意してくださいwithoutRead-error on swap deviceを表示します。ほとんどの場合、カーネルログにエラーはありませんでした。 (数回、代わりにEXT4-fs errorBuffer I/O errorが表示されました)。また、これらのエラーメッセージは、代わりにハードウェア障害が原因である可能性があります。この問題を診断するときは、他のより明確な詳細に注目してください。

テストカーネルは、このUbuntuのバグの最後、つまり次のコメントで入手できます。 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1776887/comments/5

これまでのところ、Ubuntuのテストカーネルで中断した結果を誰も報告していません。 誰かが成功を報告できれば、Ubuntu開発者がバグ修正を最終的に含めるよう奨励するかもしれません。私は間違っているかもしれませんが、何がこれを支えているのか100%はわかりません。

既知の回避策もあります。オプションscsi_mod.scan=syncを含めるようにカーネルコマンドラインを設定すると、クラッシュを回避できます。

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1776887


このアップストリームのバグは、Ubuntuユーザーに影響することが確認されています[1]。修正コミット(下記)によると、最も頻繁な症状はXorg/Xwaylandのクラッシュです。つまり、ラップトップがシステムのスリープ状態から復帰したときにGUI全体を強制終了します。バグの発生頻度は、数日ごとに1回と説明されています[2]。

[1]例えば。このユーザーはバグと非常に具体的な回避策を確認します: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1760450/comments/11

[2]例えば。このクラッシュのログ: https://bugzilla.redhat.com/show_bug.cgi?id=1553979#c2

これはblk-core.cのバグです。これは特定のハードウェアドライバーに固有のものではありません。技術的には、サスペンドバグはSCSIコアによってトリガーされます。これは、すべてのSATAデバイスで使用されます

コミットには、恐ろしいバグの存在を迅速かつ確実に証明するテストも含まれています。

NVMeにrootがいる場合にのみ、このバグを回避できると思います。 Xorgのクラッシュを引き起こさないもう1つの方法は、RAMをすべて使用しない場合です。そのため、Xorgのコールドページがスワップされるというプレッシャーはありません。また、すぐにサスペンド+再開すると、Xorgのクラッシュを再現できません。 (これは私のテストをある時点でイライラさせ、昼食中にシステムを中断した後にのみトリガーされました:)。

修正:「ブロック:どこでも割り込み可能な待機を使用しない」

カーネル4.17の場合: https://github.com/torvalds/linux/commit/1dc3039bc87ae7d19a990c3ee71cfd8a9068f428

カーネル4.16.8の場合: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-4.16.y&id=7859056bc73dea2c3714b00c83b253d4c22bf7b6

4.15.0-24.26(ubuntu 18.04)の修正の欠如: https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/bionic/tree/block/blk -core.c?id = Ubuntu-4.15.0-24.26#n856

つまり、このバグはUbuntuソースパッケージlinux-4.15.0-24.26(および4.15.0-23.25)にまだ存在しています。このバグが発生することがわかっているシステムのハードウェアの詳細(lspci-vnvn.log)を添付します。

よろしくアラン

回避策:カーネルパラメーターscsi_mod.scan = syncを使用します

10
sourcejedi