[Crash-utility] crash failed on vmcore created by kdump at an IA64

Dave Anderson anderson at redhat.com
Thu Oct 26 14:25:12 UTC 2006


Jay Lan wrote:

> Jay Lan wrote:
> > Hi,
> >
> > I saved off a vmcore from a kexec'ed crashkernel at an IA64 Altix.
> >
> > When i tried to run crash (4.0-3.5) on the vmcore, it failed.
> > Is there a known issue?
>

Not until now...

And there doesn't look to be anything in 4.0-3.6, -3.7 and 3.8 that
will help.

>
> Mmm, i built the crash binary myself from the src.rpm. It probably
> picked up mismatched kernel headers?
>

No, crash doesn't use any kernel headers.

It looks to be a loop-hole in the memory-node-gathering code
for (newer?) CONFIG_DISCONTIG ia64 kernels.

>
> > % crash System.map* vmlinuz-2.6.18-kdump vmcore
> >

BTW, did you mis-copy the command line above?  crash can't
use a compressed *vmlinuz* file, unless it's really a renamed ELF
binary?  In any case, if the vmlinux file you're using matches the
vmcore dumpfile, there's no need to use the System.map file
argument; doing so prevents several commands from being
able to use line numbers.

Anyway, back to the problem at hand...

What happens if you apply the attached patch?  (it's against
the current 4.0-3.8 version, but should apply)

Dave

>
> > crash 4.0-3.5
> > Copyright (C) 2002, 2003, 2004, 2005, 2006  Red Hat, Inc.
> > Copyright (C) 2004, 2005, 2006  IBM Corporation
> > Copyright (C) 1999-2006  Hewlett-Packard Co
> > Copyright (C) 2005  Fujitsu Limited
> > Copyright (C) 2005  NEC Corporation
> > Copyright (C) 1999, 2002  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.
> >
> > crash(7419): unaligned access to 0x60000000001bf1cc, ip=0x400000000026d090
> > crash(7419): unaligned access to 0x60000000001bf1d4, ip=0x400000000026d090
> > crash(7419): unaligned access to 0x60000000001bf1dc, ip=0x400000000026d090
> > crash(7419): unaligned access to 0x60000000001bf1e4, ip=0x400000000026d090
> > crash(7419): unaligned access to 0x60000000001bf1ec, ip=0x400000000026d090
> > GNU gdb 6.1
> > Copyright 2004 Free Software Foundation, Inc.
> > GDB 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.
> > Type "show copying" to see the conditions.
> > There is absolutely no warranty for GDB.  Type "show warranty" for details.
> > This GDB was configured as "ia64-unknown-linux-gnu"...
> >
> > please wait... (patching 23743 gdb minimal_symbol values)
> > crash: invalid (optional) structure member offsets:
> > pglist_data_node_next or pglist_data_pgdat_next
> >        FILE: memory.c  LINE: 11504  FUNCTION: node_table_init()
> >
> > [/usr/people/jlan/bin/crash] error trace: => 4000000000231740
> >
> >   4000000000231740: OFFSET_option+432
> >
> >
-------------- next part --------------
Index: memory.c
===================================================================
RCS file: /nfs/projects/cvs/crash/memory.c,v
retrieving revision 1.132
diff -u -r1.132 memory.c
--- memory.c	11 Oct 2006 13:14:35 -0000	1.132
+++ memory.c	26 Oct 2006 14:06:25 -0000
@@ -11496,7 +11496,9 @@
 	 *  Override numnodes -- some kernels may leave it at 1 on a system
 	 *  with multiple memory nodes.
 	 */
-	if (vt->flags & NODES) {
+	if ((vt->flags & NODES) &&
+            (VALID_MEMBER(pglist_data_node_next) ||
+             VALID_MEMBER(pglist_data_pgdat_next))) {
 	        get_symbol_data("pgdat_list", sizeof(void *), &pgdat);
 	
 	        for (n = 0; pgdat; n++) {


More information about the Crash-utility mailing list