Erro do Ubuntu 18.04 ao acordar do modo de suspensão: erro de leitura no dispositivo de troca

11

Depois que o laptop está no modo de suspensão por algumas horas, quando tento retomar minha sessão, recebo o seguinte erro:

Erro de leitura no dispositivo de troca

Demora cerca de 30 segundos para a tela de login carregar após isso acontecer. Após o login, a tela apaga uma ou duas vezes por um segundo e nenhum dos meus programas está mais aberto. Recebo o prompt "Problema no sistema detectado". Quando clico em "Enviar relatório", outra notificação aparece dizendo:

Desculpe, o programa "Xorg" foi fechado inesperadamente. Seu computador não possui memória livre suficiente para analisar automaticamente o problema e enviar um relatório aos desenvolvedores.

O que eu tentei até agora é aumentar o espaço de troca disponível. Era cerca de 2 GB inicialmente e eu criei outro arquivo de troca de 9 GB. Isso não ajudou. O espaço de troca ocupado (conforme o comando swapon) após a falha é sempre em torno de 170 MB.

O DMESG para quando eu reinicio minha sessão, até o erro de leitura no dispositivo de troca é o seguinte:

    
[64046.474054] ACPI: resumo de baixo nível concluído
[64046.474162] ACPI: EC: EC iniciado
[64046.474162] PM: Restaurando a memória NVS da plataforma
[64046.475139] Ativando CPUs sem inicialização ...
[64046.475196] x86: Inicializando a configuração do SMP:
[64046.475196] smpboot: Inicializando o Nó 0 Processador 1 APIC 0x2
[64046.475663] cache: a cpu1 pai não deve estar em suspensão
[64046.475859] CPU1 está ativa
[64046.475910] smpboot: Inicializando o Nó 0 Processador 2 APIC 0x4
[64046.476330] cache: a cpu2 pai não deve estar em suspensão
[64046.476506] CPU2 está ativo
[64046.476539] smpboot: Inicializando o processador 3 do nó 0 APIC 0x6
[64046.477071] cache: a cpu3 pai não deve estar em suspensão
[64046.477255] A CPU3 está ativada
[64046.477274] smpboot: Inicializando o processador do nó 0 0 4 APIC 0x1
[64046.477721] cache: a cpu4 pai não deve estar em suspensão
[64046.477922] CPU4 está ativo
[64046.477947] smpboot: Inicializando o Nó 0 Processador 5 APIC 0x3
[64046.478371] cache: a CPU pai5 não deve estar em suspensão
[64046.478571] CPU5 está ativa
[64046.478591] smpboot: Inicializando o processador 6 do nó 0 APIC 0x5
[64046.479018] cache: a CPU pai6 não deve estar em suspensão
[64046.479229] CPU6 está ativo
[64046.479247] smpboot: Inicializando o processador 7 do nó 0 APIC 0x7
[64046.479675] cache: a CPU pai7 não deve estar em suspensão
[64046.479899] CPU7 está ativa
[64046.485913] ACPI: despertando do estado de suspensão do sistema S3
[64046.639206] ACPI: EC: evento desbloqueado
[64046.639711] sd 2: 0: 0: 0: [sda] Disco inicial
[64046.873289] usb 1-11: redefina o número 2 do dispositivo USB de velocidade total usando xhci_hcd
[64046.976869] ata4: link SATA inativo (SStatus 4 SControl 300)
[64046.976892] ata2: link SATA inativo (SStatus 4 SControl 300)
[64047.149289] usb 1-6: redefina o número de dispositivo USB de alta velocidade 40 usando xhci_hcd
[64047.437370] psmouse serio1: synaptics: coordenadas máximas consultadas: x [..5660], y [..4570]
[64047.476302] psmouse serio1: synaptics: coordenadas mín. Consultadas: x [1364 ..], y [1284 ..]
[64047.922603] Assassino de OOM ativado.
[64047.922605] Reiniciando tarefas ... concluídas.
[64047.928727] Thermal_Zone1 térmica: falha ao ler a zona térmica (-61)
[64047.930036] Bluetooth: hci0: Revisão do carregador de inicialização 0.0, construção 2 semana 52 2014
[64047.935036] Bluetooth: hci0: a revisão do dispositivo é 5
[64047.935037] Bluetooth: hci0: a inicialização segura está ativada
[64047.935038] Bluetooth: bloqueio de hci0: OTP está ativado
[64047.935038] Bluetooth: hci0: o bloqueio da API está ativado
[64047.935039] Bluetooth: hci0: o bloqueio de depuração está desativado
[64047.935040] Bluetooth: hci0: Compilação mínima de firmware 1 semana 10 2014
[64047.935042] Bluetooth: hci0: firmware do dispositivo encontrado: intel / ibt-11-5.sfi
[64047.944372] PM: suspender a saída
[64048.050329] Erro de leitura no dispositivo de troca (8: 0: 1543400288)
[64048.460888] [drm] RC6 ativado

Entre em contato se precisar de outras informações.

Vedant
fonte
Estou tendo um problema muito semelhante - após a atualização para o 18.04, fechar a tampa do laptop resulta na mesma mensagem de erro (erro de leitura no dispositivo de troca) e uma reinicialização. Se você conseguir encontrar uma correção em outro lugar, seria ótimo se você pudesse compartilhá-la aqui.
Adrian
1
Tendo exatamente o mesmo problema. Eu fiz alguma pesquisa e usuários do Arch Linux estavam tendo o mesmo problema um par de meses atrás e concluiu que provavelmente tem algo a ver com o 4.15 do kernel
user8814

Respostas:

10

O kernel do Ubuntu 18.04 que você está usando no momento está faltando uma correção de bug bastante importante.

A correção para isso já está presente na versão 4.16.8 do kernel Linux upstream. (O bug de suspensão efetivamente começou a acontecer na versão 4.15 do kernel). O Ubuntu só precisa escolher este pequeno patch do upstream. O bug freqüentemente causa travamentos no Xorg imediatamente após a suspensão, ou seja, trava toda a sessão gráfica de login.

Observe que esse bug geralmente acontece sem aparecer Read-error on swap device. Na maioria das vezes, não havia erro no log do kernel. (Algumas vezes, mostrou EXT4-fs errore Buffer I/O errornão). Além disso, essas mensagens de erro podem ser causadas por uma falha de hardware. Ao diagnosticar esse problema, concentre-se em outros detalhes mais distintos.

Um kernel de teste está disponível no final deste bug do Ubuntu, ou seja, neste comentário: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1776887/comments/5

Até agora, ninguém relatou seus resultados com a suspensão com o kernel de teste do Ubuntu. Pode ser que, se alguém puder relatar o sucesso, isso encorajará o desenvolvedor do Ubuntu a finalmente incluir a correção do bug. Eu posso estar errado, porém, não tenho 100% de certeza do que está segurando isso.

Há também uma solução alternativa conhecida. Você pode evitar o acidente se você configurar a linha de comando do kernel para incluir a opção scsi_mod.scan=sync.

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


Este bug do upstream foi confirmado para afetar os usuários do Ubuntu [1]. Conforme o commit da correção (abaixo), o sintoma mais frequente é uma falha do Xorg / Xwayland, ou seja, matar toda a GUI, quando um laptop é despertado do modo de suspensão do sistema. A frequência do bug é descrita como uma vez a cada poucos dias [2].

[1] Por exemplo, este usuário confirma o erro e a solução alternativa muito específica: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1760450/comments/11

[2] Por exemplo, este log de falhas: https://bugzilla.redhat.com/show_bug.cgi?id=1553979#c23

Este é um erro no blk-core.c. Não é específico para nenhum driver de hardware. Tecnicamente, o bug de suspensão é acionado pelo núcleo SCSI - usado por todos os dispositivos SATA .

O commit também inclui um teste que comprova de maneira rápida e confiável a existência de um bug horrível.

Eu acho que você pode evitar esse bug apenas se tiver root no NVMe. A outra maneira de não atingir a falha do Xorg é se você não usar toda a sua memória RAM, então não há pressão que leve à troca de páginas frias do Xorg. Além disso, você não reproduzirá a falha do Xorg se suspender + continuar imediatamente. (Isso frustrou meus testes em um ponto, só foi acionado depois que o sistema foi suspenso durante o almoço :).

Correção: "bloco: não use espera interruptível em nenhum lugar"

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

no 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 correção no 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

Ou seja, esse bug ainda está presente no pacote fonte do Ubuntu linux-4.15.0-24.26 (e 4.15.0-23.25). Eu anexo detalhes de hardware (lspci-vnvn.log) de um sistema em que esse bug é conhecido por acontecer.

Atenciosamente Alan

SOLUÇÃO: Use o parâmetro do kernel: scsi_mod.scan = sync

sourcejedi
fonte
Excelente trabalho ao redor! Confirmado no Ubuntu 18.04 com o kernel 4.15.
ricosrealm
Na verdade, isso não funcionou após um segundo teste.
ricosrealm 5/07
@ricosrealm mais inesperado. Confirme se seu problema (às vezes) está se manifestando como SIGBUS (sinal número 7) no Xorg ou no gnome-shell. Isso é fácil se você systemd-coredumpinstalou e usa coredumpctl -r, mas não sei o que fazer quando o apport está instalado. (os pacotes systemd-coredump e apport entram em conflito entre si, por favor, julgue).
sourcejedi
@ricosrealm Mas pelo menos eu posso pedir-lhe para confirmar que: 1) a sua sessão gráfica atual vai embora, mas o sistema continua a ser de outra forma utilizável e você pode voltar a iniciar sessão novamente 2) dmesgse não mostrar uma mensagem "segfault" para Xorg / gnome-shell . (E, geralmente, não vejo erros no kernel, mas você pode ver "Erro de leitura no dispositivo de troca" algumas vezes).
sourcejedi
@ricosrealm Btw, o patch parece ter feito um pouco mais de progresso desde que eu postei a resposta. lists.ubuntu.com/archives/kernel-team/2018-June/093612.html
sourcejedi