> Hey David,
>
> I just upgraded a dev box to v3.5-rc1 and now crash doesn't work. Have
> you seen this before?
>
> crash 6.0.7
> Copyright (C) 2002-2012 Red Hat, Inc.
> Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation
> Copyright (C) 1999-2006 Hewlett-Packard Co
> Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited
> Copyright (C) 2006, 2007 VA Linux Systems Japan K.K.
> Copyright (C) 2005, 2011 NEC Corporation
> Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc.
> Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
> This program is free software, covered by the GNU General Public License,
> and you are welcome to change it and/or distribute copies of it under
> certain conditions. Enter "help copying" to see the conditions.
> This program has absolutely no warranty. Enter "help warranty" for
> details.
>
> GNU gdb (GDB) 7.3.1
> Copyright (C) 2011 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <
http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
> and "show warranty" for details.
> This GDB was configured as "i686-pc-linux-gnu"...
>
> SYSTEM MAP: /boot/System.map-3.5.0-rc1-1.2-desktop
> DEBUG KERNEL: /root/xfs/vmlinux
> DUMPFILE: vmcore
> CPUS: 4
> DATE: Tue Jun 5 15:13:35 2012
> UPTIME: 01:58:35
> LOAD AVERAGE: 2.06, 1.61, 1.77
> TASKS: 90
> NODENAME: nfs7
> RELEASE: 3.5.0-rc1-1.2-desktop
> VERSION: #20 SMP PREEMPT Tue Jun 5 12:56:22 CDT 2012
> MACHINE: i686 (2399 Mhz)
> MEMORY: 6 GB
> PANIC:
> crash: cannot determine length of symbol: log_end
>
>
>
> I had been using crash 6.0.6 on this machine on a regular basis until
> upgrading the kernel. I expect if I go back to the older kernel it will
> work again. Any suggestions? More info I can provide?
>
> Thanks,
> Ben
Right, this recent upstream kernel commit has re-designed the log buffer
scheme:
commit 7ff9554bb578ba02166071d2d487b7fc7d860d62
Author: Kay Sievers <kay vrfy org>
Date: Thu May 3 02:29:13 2012 +0200
printk: convert byte-buffer to variable-length record buffer
Eventually I, or somebody on the crash-utility mailing list, will get around
to updating crash to handle the new scheme.
The only thing you can do to work around it for now is to hack kernel.c
and just force the dump_log() function to return immediately:
void
dump_log(int msg_level)
{
int i, len, tmp;
ulong log_buf, log_end;
char *buf;
char last;
ulong index;
struct syment *nsp;
int log_wrap, loglevel, log_buf_len;
+ return;
if (symbol_exists("log_buf_len")) {
get_symbol_data("log_buf_len", sizeof(int),
&log_buf_len);
get_symbol_data("log_buf", sizeof(ulong), &log_buf);
} else {
...
Dave
Ben,
I have a fix queued for crash-6.0.8. I should also mention that
a more reasonable workaround to the hack above would be to simply
invoke the session with "crash -s ...". In that case, the session
will come up OK -- although the "sys" and "log" commands will result
in the same (but non-fatal) error message.
Dave