Falha no sistema - caracteres estranhos no syslog

11

Eu tenho um pequeno servidor que eu uso para teste e programação. Atualmente, ele roda o Debian 9.4 stretch com o kernel 4.14.0-0.bpo.3-amd64 .

Hoje eu tentei conectar-me através do SSH, mas não consegui, tentei fazer o ping e estava inacessível. Portanto, tive que reiniciá-lo desconectando o cabo de alimentação. Então eu fui /var/log/syslog e encontrei uma linha estranha contendo exatamente 6140 caracteres como o seguinte

^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@

nada mais até que novas entradas de log do sistema sejam reiniciadas. Esta é realmente a primeira vez que isso acontece.

Alguém sabe o que poderia ser?

DrKey
fonte
2
Bem, eu escrevi sobre isso em askubuntu.com/a/1020373/43344 , por exemplo. (-: Então existem unix.stackexchange.com/questions/227173 e unix.stackexchange.com/questions/237321 ... #
314 JdeBP JdeBP
1
@JdeBP Eu prefiro sua primeira resposta / link, é isso mesmo. Odd tem uma pergunta com mais de 1500 visitas e você não recebe um único voto, +1.
Rui F Ribeiro

Respostas:

14

O conteúdo do arquivo syslog que você está mostrando a todos os zeros é de fato uma corrupção da escrita do sistema de arquivos / syslog.

A falha do sistema travou o sistema durante a gravação no arquivo syslog, e esse é o resultado final.

Já vi isso acontecer várias vezes ao longo dos anos, em VMs Linux e mais algumas vezes em Raspberries e Banana Pis.

Nada para ficar obcecado (muito) ou perder muito tempo para investigar por que você o tem em um evento único. Eu ficaria mais preocupado em descobrir por que ele falhou, especialmente se for um evento regular.

PS entrando em território anedótico, da última vez que tive isso acontecendo regularmente em um Banana Pi R1, consegui rastrear a causa de um chipset wifi (com defeito) realtek.

Rui F Ribeiro
fonte
4
Também é importante notar que ^@é o byte NUL (valor de byte 0), portanto são dados "vazios" que são anexados ao arquivo de log por acidente. Isso pode acontecer, por exemplo, quando um novo bloco vazio é atribuído ao final do arquivo, mas a quantidade de bytes realmente ocupados por dados significativos nesse bloco não é atualizada corretamente (porque a falha / redefinição física ocorreu antes desse contador ser comprometida com a unidade).
marcelm
como descobrir por que ele caiu?
CEO na Apartico 03/07/19
@CEOatApartico Aconselho a abertura de uma nova pergunta.
Rui F Ribeiro
@RuiFRibeiro unix.stackexchange.com/questions/528275/…
CEO na Apartico
6

Para expandir um pouco essa resposta , seu syslog possui o conteúdo de uma página de memória parcialmente comprometida com o disco, com os metadados do syslog não atualizados. Essa sequência de ^@caracteres é na verdade NUL bytes; exatamente o que uma página de memória recém-alocada contém inicialmente.

Jarhmander
fonte
Um lembrete amigável: se você o baseará na resposta do JdeBP, tente fazer o certo. Os setores do disco são zerados quando alocados pelo kernel por razões de segurança, não é memória com 0s sendo gravados por si só. Eu aconselho a corrigir isso.
Rui F Ribeiro