从睡眠中唤醒的Ubuntu 18.04错误:交换设备上的读取错误


11

笔记本电脑进入睡眠模式几个小时后,当我尝试恢复会话时会出现以下错误:

交换设备上的读取错误

登录屏幕大约需要30秒才能加载此事件。登录后,屏幕会一秒钟消隐一次或两次,并且我的程序都无法再打开。我收到“检测到系统问题”提示。当我点击“发送报告”时,另一条通知弹出:

对不起,程序“ 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:正在引导节点0处理器1 APIC 0x2
[64046.475663]缓存:父级cpu1不应该处于睡眠状态
[64046.475859] CPU1已启动
[64046.475910] smpboot:正在引导节点0处理器2 APIC 0x4
[64046.476330]缓存:父cpu2不应该处于睡眠状态
[64046.476506] CPU2已启动
[64046.476539] smpboot:正在引导节点0处理器3 APIC 0x6
[64046.477071]缓存:父cpu3不应该处于睡眠状态
[64046.477255] CPU3已启动
[64046.477274] smpboot:正在引导节点0处理器4 APIC 0x1
[64046.477721]缓存:父cpu4不应处于睡眠状态
[64046.477922] CPU4已启动
[64046.477947] smpboot:正在引导节点0处理器5 APIC 0x3
[64046.478371]缓存:父cpu5不应该处于睡眠状态
[64046.478571] CPU5已启动
[64046.478591] smpboot:正在引导节点0处理器6 APIC 0x5
[64046.479018]缓存:父cpu6不应该处于睡眠状态
[64046.479229] CPU6已启动
[64046.479247] smpboot:正在引导节点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重置全速USB设备编号2
[64046.976869] ata4:SATA链接断开(SStatus 4 SControl 300)
[64046.976892] ata2:SATA链接断开(SStatus 4 SControl 300)
[64047.149289] USB 1-6:使用xhci_hcd重置40号高速USB设备
[64047.437370] psmouse serio1:突触:查询的最大坐标:x [..5660],y [..4570]
[64047.476302] psmouse serio1:突触:查询的最小坐标:x [1364 ..],y [1284 ..]
[64047.922603]启用了OOM杀手。
[64047.922605]重新启动任务...已完成。
[64047.928727] Thermal Thermal_zone1:无法读取热区(-61)
[64047.930036]蓝牙:hci0:Bootloader修订版0.0版本2周52 2014
[64047.935036]蓝牙:hci0:设备版本为5
[64047.935037]蓝牙:hci0:启用了安全启动
[64047.935038]蓝牙:hci0:启用了OTP锁定
[64047.935038]蓝牙:hci0:已启用API锁定
[64047.935039]蓝牙:hci0:调试锁定已禁用
[64047.935040]蓝牙:hci0:最低固件版本1周10 2014
[64047.935042]蓝牙:hci0:找到的设备固件:intel / ibt-11-5.sfi
[64047.944372] PM:暂停退出
[64048.050329]交换设备上的读取错误(8:0:1543400288)
[64048.460888] [DRM] RC6开启

请让我知道是否需要其他信息。


我遇到了非常类似的问题-升级到18.04后,关闭笔记本电脑盖会导致相同的错误消息(在交换设备上读取错误)并重新启动。如果您设法在其他地方找到修复程序,那么可以在这里分享它会很棒。
阿德里安

1
有完全相同的问题。我进行了一些研究,几个月前arch Linux上的用户遇到了同样的问题,并得出结论认为它可能与4.15内核有关
user8814

Answers:


10

您当前使用的Ubuntu 18.04内核缺少相当重要的错误修复。

上游Linux内核版本4.16.8中已经提供了针对此问题的修复程序。(暂停错误实际上是在内核版本4.15中开始发生的)。Ubuntu只需要从上游选择该小补丁。该错误经常导致Xorg在挂起后立即崩溃,即,它使整个图形登录会话崩溃。

请注意,此错误经常发生而没有显示Read-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%是什么原因。

也有一个已知的解决方法。如果将内核命令行配置为包含option,则可以避免崩溃scsi_mod.scan=sync

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


该上游错误已被确认会影响Ubuntu用户[1]。根据修复提交(如下),最常见的症状是Xorg / Xwayland崩溃,即当笔记本电脑从系统睡眠中唤醒时,杀死了整个GUI。错误的发生频率被描述为每隔几天一次[2]。

[1]例如,该用户确认该错误和非常具体的解决方法:https : //bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1760450/comments/11

[2]例如,当机记录档:https : //bugzilla.redhat.com/show_bug.cgi? id = 1553979# c23

这是blk-core.c中的错误。它并不特定于任何一种硬件驱动程序。从技术上讲,挂起错误由SCSI内核触发- 所有SATA设备都使用该内核。

该提交还包括一个测试,该测试可以快速可靠地证明存在令人恐惧的错误。

我想只有在NVMe上具有root才能避免此错误。避免Xorg崩溃的另一种方法是,如果您不使用所有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


出色的工作!在Ubuntu 18.04 / 4.15内核上确认。
ricosrealm

实际上,在第二次测试后,此方法不起作用。
ricosrealm

@ricosrealm最意外。请确认您的问题(有时)在Xorg或gnome-shell中表现为SIGBUS(信号编号7)。如果您已经systemd-coredump安装并使用coredumpctl -r,这很容易,但是安装了Apport后我不知道该怎么办。(systemd-coredump和apport软件包相互冲突,请进行判断)。
sourcejedi '18

@ricosrealm但至少我可以请你确认:1)当前的图形会话会消失,但系统仍然可用,否则,您可以再次登录2)dmesg没有显示为Xorg / GNOME的壳“段错误”消息。(通常,我看不到任何内核错误,但是有时您可能会看到“交换设备上的读取错误”)。
sourcejedi '18

@ricosrealm顺便说一句,自我发布答案以来,该补丁似乎已取得了一些进步。listings.ubuntu.com/archives/kernel-team/2018-June/093612.html
sourcejedi '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.