Ошибка Ubuntu 18.04 при выходе из спящего режима: ошибка чтения на устройстве подкачки
После того, как ноутбук находится в спящем режиме в течение нескольких часов, при попытке возобновить сеанс я получаю следующую ошибку:
Ошибка чтения на устройстве подкачки
Экран входа в систему занимает около 30 секунд, чтобы загрузить сообщение о случившемся. После входа в систему экран отключается один или два раза в секунду, и ни одна из моих программ больше не открыта. Я получаю приглашение "Обнаружена системная проблема". Когда я нажимаю "Отправить отчет", появляется другое уведомление:
Извините программа "Xorg" закрылась неожиданно. У вашего компьютера недостаточно свободной памяти для автоматического анализа проблемы и отправки отчета разработчикам.
Пока что я пробовал увеличить доступное пространство подкачки. Первоначально он составлял около 2 ГБ, и я создал еще один файл подкачки объемом 9 ГБ. Это не помогло. Занятое пространство подкачки (согласно команде swapon) после сбоя всегда составляет около 170 МБ.
DMESG, когда я возобновляю сеанс, до ошибки чтения на устройстве подкачки выглядит следующим образом:
[64046.474054] ACPI: Низкоуровневое возобновление завершено [64046.474162] ACPI: EC: EC запущен [64046.474162] PM: Восстановление памяти NVS платформы [64046.475139] Включение незагрузочных процессоров... [64046.475196] x86: Загрузка конфигурации SMP: [64046.475196 ] smpboot: загрузочный узел 0 Кэш APIC процессора 1 0x2 [64046.475663]: родительский процессор не должен находиться в спящем режиме [64046.475859] CPU1 не работает [64046.475910] smpboot: загрузочный узел 0 кэша процессора 2 APIC 0x4 [64046.476330] кэш: родительский процессор не должен находиться в режиме ожидания [64046.476506] CPU2 работает [64046.476539] smpboot: загрузочный узел 0 Процессор 3 APIC 0x6 [64046.477071] кэш: родительский процессор не должен находиться в спящем режиме [64046.477255] CPU3 работает [64046.477274] smpboot: загрузочный узел 0777 640 APIC 0217 621 APO кэш: родительский процессор 4 не должен спать [64046.477922] CPU4 работает [64046.477947] smpboot: загрузочный узел 0 Процессор 5 APIC 0x3 [64046.478371] кэш: родительский процессор 5 не должен спать [64046.478571] CPU5 работает [64046.478591] smpboot 0 Процессор 6 APIC 0x5 [64046.479018] кеш: родительский процессор 6 не должен находиться в спящем режиме [64046.479229] CPU6 работает [64046.479247] smpboot: загрузочный узел 0 Процессор 7 APIC 0x7 [64046.479675] кэш: родительский процессор 7 не должен находиться в спящем режиме [64046.479899] CPU7 работает [64046.48]: Выход из режима ожидания системы S3 [64046.639206] ACPI: EC: событие разблокировано [64046.639711] sd 2: 0: 0: 0: [sda] Стартовый диск [64046.873289] usb 1-11: сброс полной скорости USB-устройства № 2 с помощью xhci_hcd [64046.976869] ata4: канал SATA отключен (SStatus 4 SControl 300) [64046.976892] ata2: канал SATA отключен (SStatus 4 SControl 300) [64047.149289] usb 1-6: сброс высокоскоростного USB-устройства 40 с помощью xhci_hcd [640] [640] [640] psmouse serio1: синаптики: запрашиваемые максимальные координаты: x [..5660], y [..4570] [64047.476302] psmouse serio1: синаптики: запрашиваемые минимальные координаты: x [1364..], y [1284..] [64047.922603] OOM killer включен. [64047.922605] Перезапуск задач... выполнено. [64047.928727] thermal thermal_zone1: не удалось прочитать тепловую зону (-61) [64047.930036] Bluetooth: hci0: версия загрузчика 0.0 build 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: приостановить выход [64048.050329] Ошибка чтения на своп-устройстве (8:0:1543400288) [64048.460888] [drm] RC6 включен
Пожалуйста, дайте мне знать, если нужна какая-либо другая информация.
1 ответ
В используемом в настоящее время ядре Ubuntu 18.04 отсутствует довольно важное исправление ошибки.
Исправление для этого уже присутствует в вышестоящей версии ядра Linux 4.16.8. (Ошибка приостановки фактически начала появляться в версии ядра 4.15). Ubuntu нужно только выбрать этот маленький патч из апстрима. Эта ошибка часто приводит к сбою Xorg сразу после приостановки, т. Е. Происходит сбой всего графического сеанса входа в систему.
Обратите внимание, что эта ошибка часто происходит без отображения Read-error on swap device
, Большую часть времени в журнале ядра не было ошибок. (Несколько раз это показывало EXT4-fs error
а также Buffer 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, то есть уничтожение всего графического интерфейса пользователя, когда ноутбук просыпается из спящего режима системы. Частота ошибок описывается один раз в несколько дней [2].
[1] Например, этот пользователь подтверждает ошибку и весьма специфический обходной путь: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1760450/comments/11
[2] Например, этот журнал аварий: https://bugzilla.redhat.com/show_bug.cgi?id=1553979
Это ошибка в blk-core.c. Это не характерно для какого-либо одного аппаратного драйвера. Технически ошибка приостановки вызывается ядром SCSI, которое используется всеми устройствами SATA.
В коммит также входит тест, который быстро и надежно подтверждает существование ужасающей ошибки.
Я думаю, вы можете избежать этой ошибки, только если у вас есть root на NVMe. Другой способ не попасть в аварию Xorg - это если вы не используете всю свою оперативную память, поэтому нет никакого давления, которое приводит к обмену холодных страниц Xorg. Кроме того, вы не будете воспроизводить сбой Xorg, если немедленно приостановите + возобновите. (Это расстроило мои тесты в один момент, оно сработало только после того, как система перестала работать после обеда:).
Исправлено: "блок: нигде не использовать прерывистое ожидание"
в ядре 4.17: https://github.com/torvalds/linux/commit/1dc3039bc87ae7d19a990c3ee71cfd8a9068f428
отсутствие исправления в 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