Dmesg not being dumped
kernel at kyup.com
Mon Aug 24 07:17:57 PDT 2015
On 08/24/2015 04:03 PM, Dave Anderson wrote:
> ----- Original Message -----
>> On 08/20/2015 04:04 PM, Dave Anderson wrote:
>>> The vmcoreinfo data strings were initially located in an ELF note in /proc/vmcore.
>>> When makedumpfile -c was run on /proc/vmcore, it copied those ELF notes into the
>>> compressed kdump header, and you have dumped them above.
>>> So it seems to be an issue with vmcore-dmesg. If you change the core_collector
>>> variable to "cp" or "scp", it will copy /proc/vmcore unmodified to the target
>>> location. Then you can run vmcore-dmesg on that file to debug it.
>> This is very, very odd. Obtaining a raw vmcore with cp and then running
>> vmcore-dmesg does show the dmesg log. But at the same time, the
>> vmcore-dmesg.txt file is empty and its name is
> I'm not sure what you mean. Similar to the saving of the vmcore file, the
> script directs the output of vmcore-dmesg into vmcore-dmesg-incomplete.txt.
> Then, only if vmcore-dmesg returns an exit status of 0, the script will
> rename the file to vmcore-dmesg.txt.
<dmesg log is printed"
so vmcore-dmesg succeeds but for some reason the dmesg is not being
redirrected to the txt file. Yes the vmcore-dmesg-incomplete.txt is
empty when the crash dump was invoked.
So to sum up my findings so far:
* When a crash dump is invoked the with the -c option of makedumpfile I
get an empty vmcore-dmesg-incomplete.txt. And the error string printed
on screen while taking the dump is: "struct log size not exported".
Looking at the code this can happen if the "printk_log" symbol cannot be
found. However, when I load the resulting vmcore image in crash and
invoke help -n I see that the correct symbol is there.
* When a raw coredump is taken (via cp as a collector) I still have an
empty vmcore-dmesg-incomplete.txt file, yet when I manually run
vmcore-dmesg on the resulting vmcore the dmesg is extracted and the
return code of the vmcore-dmesg script is 0 (success).
Having those facts in mind and what you said I do not see a logical
reason why dmesg is not being stored in the text file.
So either I'm missing something or the error message that is being
printed is very misleading, even though the code that involves is not
complicated it at all. Hm....
More information about the kexec