!["coredumpctl" não pode ler o core dump, dá ao arquivo de mensagem não ser legível ou não existe tal arquivo ou diretório?](https://rvso.com/image/164712/%22coredumpctl%22%20n%C3%A3o%20pode%20ler%20o%20core%20dump%2C%20d%C3%A1%20ao%20arquivo%20de%20mensagem%20n%C3%A3o%20ser%20leg%C3%ADvel%20ou%20n%C3%A3o%20existe%20tal%20arquivo%20ou%20diret%C3%B3rio%3F.png)
Estou emitindo os seguintes comandos:
coredumpctl list
Mon 2019-11-18 23:58:19 GMT 19043 1000 1000 31 missing /opt/google/chrome/chrome
Mon 2019-11-18 23:58:19 GMT 19062 1000 1000 31 missing /opt/google/chrome/chrome
Tue 2019-11-19 15:52:55 GMT 22332 1000 1000 6 missing /usr/bin/texstudio
Seguido pela:
coredumpctl gdb 22332
Storage: /var/lib/systemd/coredump/core.texstudio.1000.bb1cfb6b67f2423fac681d721ee1ba02.22332.1574178774000000.lz4 (inaccessible)
File "/var/lib/systemd/coredump/core.texstudio.1000.bb1cfb6b67f2423fac681d721ee1ba02.22332.1574178774000000.lz4" is not readable: No such file or directory
Que despeja o rastreamento de pilha e fornece as duas mensagens acima sobre o armazenamento estar inacessível e o arquivo não legível ou encontrado.
Estou fazendo algo errado?
Responder1
Existem duas coisas comuns que você pode estar errando.
Freqüentemente, um core dump é "inacessível" porque o programa foi executado com um ID de usuário diferente do seu. Isso significa que você não tem permissão. A solução rápida é executar coredumpctl
como root, por exemplo, usando sudo coredumpctl
.
Acho que esse não é o seu problema. Esses coredumps são do ID do usuário 1000. Acho que seu usuário tem o ID 1000, porque é o primeiro (e provavelmente o único) login não root criado em seu sistema.
Em segundo lugar,systemd-coredumptem algumas configurações emcoredump.conf, sobre quanto espaço em disco é permitido usar. Parece que se você tiver menos de 15% de espaço livre em disco, os core dumps não serão criados. (A menos que você altere esta configuração).
Você pode verificar o espaço disponível em disco usando o comando df -h
ou df -h /var/lib/systemd/coredump/
.
(E para ver o tamanho absoluto total usado pelos core dumps, você pode executar du -sh /var/lib/systemd/coredump/
.)
MaxUse=, KeepFree=
Imponha limites ao espaço em disco ocupado por core dumps armazenados externamente. MaxUse= garante que os core dumps antigos sejam removidos assim que o espaço total em disco ocupado pelos core dumps crescer além desse limite (o padrão é 10% do tamanho total do disco). KeepFree= controla quanto espaço em disco deve ser mantido livre (o padrão é 15% do tamanho total do disco). Observe que o espaço em disco usado pelos core dumps pode exceder temporariamente esses limites enquanto os core dumps são processados. Observe que core dumps antigos também são removidos com base no tempo por meio de systemd-tmpfiles(8). Defina qualquer valor como 0 para desativar a limpeza baseada em tamanho.
Responder2
Observe que o que coredumpctl list
está escrito missing
em cada um dos dumps e a mensagem de erro final foi No such file or directory
.
Suponho que sua distribuição tenha um cron job/cronômetro systemd regular que limpa core dumps antigos (semanalmente, talvez?). Ele limpou os arquivos de core dump reais e apenas uma pequena entrada de log que informa coredumpctl
que tal dump costumava existir foi restante.