Error de Ubuntu 18.04 al despertar del modo de suspensión: error de lectura en el dispositivo de intercambio

11

Después de que el portátil ha estado en modo de suspensión durante un par de horas, cuando intento reanudar mi sesión aparece el siguiente error:

Error de lectura en dispositivo de intercambio

La pantalla de inicio de sesión tarda unos 30 segundos en cargarse después de que esto suceda. Una vez que inicie sesión, la pantalla se pone en blanco una o dos veces por un segundo, y ninguno de mis programas ya está abierto. Aparece el mensaje "Se detectó un problema del sistema". Cuando hago clic en "Enviar informe", aparece otra notificación que dice:

Lo sentimos, el programa "Xorg" se cerró inesperadamente. Su computador no tiene suficiente memoria libre para analizar automáticamente el problema y enviar un informe a los desarrolladores.

Lo que he intentado hasta ahora es aumentar el espacio de intercambio disponible. Fue alrededor de 2 GB inicialmente y creé otro archivo de intercambio de 9 GB. Esto no ha ayudado. El espacio de intercambio ocupado (según el comando swapon) después del bloqueo siempre es de alrededor de 170 MB.

El DMESG para cuando reanudo mi sesión, hasta el error de lectura en el dispositivo de intercambio es el siguiente:

    
[64046.474054] ACPI: currículum de bajo nivel completo
[64046.474162] ACPI: EC: EC iniciado
[64046.474162] PM: Restaurando la memoria NVS de la plataforma
[64046.475139] Habilitación de CPU sin arranque ...
[64046.475196] x86: configuración de arranque de SMP:
[64046.475196] smpboot: Nodo de arranque 0 Procesador 1 APIC 0x2
[64046.475663] caché: el padre cpu1 no debería estar durmiendo
[64046.475859] CPU1 está activa
[64046.475910] smpboot: Nodo de arranque 0 Procesador 2 APIC 0x4
[64046.476330] caché: el padre cpu2 no debería estar durmiendo
[64046.476506] CPU2 está activa
[64046.476539] smpboot: Nodo de arranque 0 Procesador 3 APIC 0x6
[64046.477071] caché: el padre cpu3 no debería estar durmiendo
[64046.477255] CPU3 está arriba
[64046.477274] smpboot: Nodo de arranque 0 Procesador 4 APIC 0x1
[64046.477721] caché: el padre cpu4 no debería estar durmiendo
[64046.477922] CPU4 está arriba
[64046.477947] smpboot: Nodo de arranque 0 Procesador 5 APIC 0x3
[64046.478371] caché: el padre cpu5 no debería estar durmiendo
[64046.478571] CPU5 está arriba
[64046.478591] smpboot: Nodo de arranque 0 Procesador 6 APIC 0x5
[64046.479018] caché: el padre cpu6 no debería estar durmiendo
[64046.479229] CPU6 está arriba
[64046.479247] smpboot: Nodo de arranque 0 Procesador 7 APIC 0x7
[64046.479675] caché: el padre cpu7 no debería estar durmiendo
[64046.479899] CPU7 está arriba
[64046.485913] ACPI: despertar del estado de suspensión del sistema S3
[64046.639206] ACPI: EC: evento desbloqueado
[64046.639711] sd 2: 0: 0: 0: [sda] Disco de inicio
[64046.873289] usb 1-11: restablezca el dispositivo USB de velocidad completa número 2 usando xhci_hcd
[64046.976869] ata4: enlace SATA inactivo (SStatus 4 SControl 300)
[64046.976892] ata2: enlace SATA inactivo (SStatus 4 SControl 300)
[64047.149289] usb 1-6: restablezca el dispositivo USB de alta velocidad número 40 usando xhci_hcd
[64047.437370] psmouse serio1: synaptics: coordenadas máximas consultadas: x [..5660], y [..4570]
[64047.476302] psmouse serio1: sinápticos: coordenadas mínimas consultadas: x [1364 ..], y [1284 ..]
[64047.922603] OOM killer habilitado.
[64047.922605] Reiniciando tareas ... hecho.
[64047.928727] térmicas térmicas_zona1: no se pudo leer la zona térmica (-61)
[64047.930036] Bluetooth: hci0: revisión del cargador de arranque 0.0 build 2 semana 52 2014
[64047.935036] Bluetooth: hci0: la revisión del dispositivo es 5
[64047.935037] Bluetooth: hci0: el arranque seguro está habilitado
[64047.935038] Bluetooth: hci0: el bloqueo OTP está habilitado
[64047.935038] Bluetooth: hci0: el bloqueo de API está habilitado
[64047.935039] Bluetooth: hci0: el bloqueo de depuración está deshabilitado
[64047.935040] Bluetooth: hci0: compilación mínima de firmware 1 semana 10 2014
[64047.935042] Bluetooth: hci0: firmware del dispositivo encontrado: intel / ibt-11-5.sfi
[64047.944372] PM: suspender salida
[64048.050329] Error de lectura en dispositivo de intercambio (8: 0: 1543400288)
[64048.460888] [drm] RC6 en

Avíseme si necesita otra información.

Vedant
fuente
Tengo un problema muy similar: después de actualizar a 18.04, al cerrar la tapa de la computadora portátil aparece el mismo mensaje de error (Error de lectura en el dispositivo de intercambio) y se reinicia. Si logras encontrar una solución en otro lugar, sería genial si pudieras compartirla aquí.
Adrian
1
Tener exactamente el mismo problema. Investigué un poco y los usuarios de Arch Linux tenían el mismo problema hace un par de meses y concluí que probablemente tenga algo que ver con el kernel 4.15
user8814

Respuestas:

10

Al kernel Ubuntu 18.04 que está utilizando actualmente le falta una corrección de errores bastante importante.

La solución para esto ya está presente en el núcleo de Linux versión 4.16.8. (El error de suspensión efectivamente comenzó a suceder en la versión 4.15 del kernel). Ubuntu solo necesita seleccionar este pequeño parche desde arriba. Con frecuencia, el error provoca bloqueos de Xorg inmediatamente después de la suspensión, es decir, bloquea toda la sesión de inicio de sesión gráfica.

Tenga en cuenta que este error a menudo ocurre sin mostrarse Read-error on swap device. La mayoría de las veces, no hubo error en el registro del kernel. (Algunas veces, se mostró EXT4-fs errory en su Buffer I/O errorlugar). Además, estos mensajes de error podrían ser causados ​​por una falla de hardware. Cuando diagnostique este problema, concéntrese en otros detalles más distintos.

Un núcleo de prueba está disponible al final de este error de Ubuntu, es decir, en este comentario: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1776887/comments/5

Hasta ahora, nadie ha informado sus resultados de la suspensión con el kernel de prueba de Ubuntu. Puede ser que si alguien puede informar el éxito, alentará al desarrollador de Ubuntu a incluir finalmente la corrección de errores. Sin embargo, podría estar equivocado, no estoy 100% seguro de lo que está deteniendo esto.

También hay una solución alternativa conocida. Puede evitar el bloqueo si configura la línea de comando del núcleo para incluir la opción scsi_mod.scan=sync.

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


Se ha confirmado que este error ascendente afecta a los usuarios de Ubuntu [1]. Según la confirmación de la reparación (a continuación), el síntoma más frecuente es un bloqueo de Xorg / Xwayland, es decir, la muerte de toda la GUI, cuando una computadora portátil se despierta del sistema de suspensión. La frecuencia del error se describe como una vez cada pocos días [2].

[1] Por ejemplo, este usuario confirma el error y una solución muy específica: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1760450/comments/11

[2] Por ejemplo, este registro de bloqueos: https://bugzilla.redhat.com/show_bug.cgi?id=1553979#c23

Este es un error en blk-core.c. No es específico de ningún controlador de hardware. Técnicamente, el error de suspensión es activado por el núcleo SCSI, que es utilizado por todos los dispositivos SATA .

El commit también incluye una prueba que demuestra rápida y confiablemente la existencia de un error horrible.

Supongo que puede evitar este error solo si tiene root en NVMe. La otra forma de no golpear el bloqueo de Xorg es si no usa toda su RAM, por lo que no hay presión que provoque el intercambio de páginas frías de Xorg. Además, no reproducirá el bloqueo de Xorg si suspende + reanuda inmediatamente. (Esto frustró mis pruebas en un punto, solo se activó después de dejar el sistema suspendido durante el almuerzo :).

Arreglo: "bloquear: no use la interrupción de esperar en ningún lado"

en el kernel 4.17: https://github.com/torvalds/linux/commit/1dc3039bc87ae7d19a990c3ee71cfd8a9068f428

en el kernel 4.16.8: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-4.16.y&id=7859056bc73dea2c3714b00c83b253d4c22bf7b6

falta de corrección en 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

Es decir, este error todavía está presente en el paquete fuente de Ubuntu linux-4.15.0-24.26 (y 4.15.0-23.25). Adjunto detalles de hardware (lspci-vnvn.log) de un sistema donde se sabe que ocurre este error.

Saludos Alan

Solución: utilice el parámetro del kernel: scsi_mod.scan = sync

sourcejedi
fuente
Excelente trabajo alrededor! Confirmado en Ubuntu 18.04 con kernel 4.15.
ricosrealm
En realidad, esto no funcionó después de una segunda prueba.
ricosrealm
@ricosrealm más inesperado. Confirme que su problema (a veces) se manifiesta como SIGBUS (número de señal 7) en Xorg o gnome-shell. Esto es fácil si lo systemd-coredumpinstaló y usó coredumpctl -r, pero no sé qué hacer cuando tiene instalado un dispositivo. (systemd-coredump y los paquetes apport entran en conflicto entre sí, ejerza su criterio).
sourcejedi
@ricosrealm Pero al menos puedo pedir que confirmar que 1) su actual sesión gráfica desaparece, pero el sistema sigue siendo de otra forma utilizable y se puede volver a conectarse de nuevo 2) dmesgno no mostrar un mensaje "error de segmentación" para Xorg / gnome-shell . (Y lo más común es que no veo ningún error del kernel, pero es posible que vea "Error de lectura en el dispositivo de intercambio" algunas veces).
sourcejedi
@ricosrealm Por cierto, el parche parece haber progresado un poco más desde que publiqué la respuesta. lists.ubuntu.com/archives/kernel-team/2018-June/093612.html
sourcejedi