[Crash-utility] [ANNOUNCE] crash version 5.0.1 is available

Dave Anderson anderson at redhat.com
Thu Feb 18 18:52:58 UTC 2010


- Due to a change in the x86 disassembler output from the embedded 
   gdb-7.0 that was introduced in crash version 5.0.0, there may be 
   a stream of warning messages during invocation that indicate 
   "crash: invalid input: <string>:" and "crash: input string too 
   large: <string>: (9 vs 8)" on 2.6.20 and earlier x86 kernels.
   (anderson at redhat.com)

 - As of glibc 2.11, the mkstemps() function has been introduced as a
   versioned symbol.  As a result, crash utility binaries built on host
   machines with glibc 2.11 or later cannot be run on systems that run
   pre-2.11 glibc versions, failing during invocation with the error
   message "crash: relocation error: crash: symbol mkstemps, version 
   GLIBC_2.11 not defined in file libc.so.6 with link time reference".
   With the patch, the pre-existing version of mkstemps() from the 
   built-in libiberty.a library will always be used.
   (jmoyer at redhat.com)

 - Fix for the "irq" command on 2.6.33 and later kernels to account for
   the removal of the irqaction.mask structure member.  Without the
   patch, the "irq" command fails with the error message "irq: invalid 
   structure member offset: irqaction_mask".
   (bernhard at bwalle.de)

 - Added a defensive mechanism to handle a corrupted "cache_cache" 
   kmem_cache structure.  Without the patch, a vmcore that had such
   a corruption caused a failure during invocation with the error 
   message "crash: zero-size memory allocation!".
   (anderson at redhat.com)

 - Fix for the "swap", "kmem -i", and "vm -p" commands to account for 
   the 2.6.33 kernel changes to the swap_info_struct data structure and 
   the swap_info[] array type.  Without the patch, "swap" would show 
   only the command's header, "kmem -i" would show zero swap usage, and 
   "vm -p" would show "(unknown swap location)" when translating the
   swap file name for any swapped-out pages in the task.
   (anderson at redhat.com)

 - Fix for a segmentation violation during session invocation when 
   running against 2.6.30 or later x86_64 dumpfiles whose kernel is not 
   configured with CONFIG_SMP.
   (anderson at redhat.com)

 - Fix for the "bt" command on an ia64 "INIT" process that interrupted 
   a task that was running in user space, but was unable to modify the 
   original (interrupted) task's stack.  Without the patch, the "INIT"
   task's backtrace would not display the task that was interrupted,
   and would display the error message "bt: unwind: failed to locate 
   return link (ip=<user-virtual-address>)!".  With the patch, the
   interrupted task information is displayed in the same manner as if
   the original stack had been modified.  
   (tindoh at redhat.com)

 - Fix for x86, s390, s390x and ia64 architectures to set the system
   cpu count equal to the highest cpu online plus one.  Without the 
   patch, those architectures would use the number of online cpus as 
   the system's total cpu count, which would be misleading when any
   offline cpu number was less than the highest online cpu number.
   (anderson at redhat.com)

 - Fix for package build failure on x86_64 when using gcc-4.5.  Without 
   the patch, these types of errors are generated:
     unwind_x86_32_64.c:50:2: error: initializer element is not constant
     unwind_x86_32_64.c:50:2: error: (near initialization for 'reg_info[7].offs')
     unwind_x86_32_64.c:50:2: error: initializer element is not constant
     unwind_x86_32_64.c:50:2: error: (near initialization for 'reg_info[8].offs')
   (troy.heber at hp.com)

 - Fix to recognize the symbol type change of per-cpu variables from 
   'd' or 'D' to 'V'.  Without the patch, entering a command of the 
   form "p per_cpu__<variable>" would fail with the error message 
   "p: gdb request failed: p per_cpu__<variable>".  With the fix,
   the symbol is recognized as a per-cpu variable, in which case the
   data type of the variable is displayed, followed by a list of the
   virtual addresses of each per-cpu instance of the variable.
   (anderson at redhat.com)

 - Fix for the "struct" and "union" commands when passed an address that
   is in a valid kernel virtual address region but is either unmapped or
   non-existent.  Without the patch, the following three error messages
   are displayed: 
     struct <name> struct: invalid kernel virtual address: 
       <kernel-address>  type: "gdb_readmem_callback" 
     gdb called without error_hook: Cannot access memory at address 
       <kernel-address>
     *** glibc detected *** crash: double free or corruption (!prev): 
       <crash-address> ***
   followed by a backtrace and the crash utility memory map.  The session
   aborts at that point.  With the fix, the commands will fail gracefully
   after displaying error messages reporting that the kernel virtual 
   address cannot be accessed.
   (anderson at redhat.com)

 - Update for 2.6.33 and later s390 and s390x kernels to account for the
   "_lowcore" structure member name change from "st_status_fixed_logout"  
   to "psw_save_area".
   (holzheu at linux.vnet.ibm.com)

 - Fix for very large Xen domU dumpfiles that locate the base offset of 
   relevant ELF sections beyond the 4GB mark.  Without the patch, the
   crash session fails with the error messages "crash: cannot find mfn 
   <number> (0x<number>) in page index" followed by "crash: cannot 
   read/find cr3 page".
   (anderson at redhat.com, xiaowei.hu at oracle.com)

 - If a kernel crash occurs during a kernel module loading operation,
   it is possible that a subsequent crash session on the vmcore may 
   result in a segmentation violation during the "please wait...  
   (gathering module symbol data)" phase.  
   (john.wright at hp.com)

 - Fix for a gdb-7.0 regression that causes the line number capability 
   to fail with certain ranges of x86 base kernel text addresses.  
   Without the patch, the "dis -l <symbol>" or "sym <symbol>" 
   commands would fail to show line number information for certain 
   ranges of base kernel text addresses. 
   (anderson at redhat.com)

 - Fix for the "bt" command when run on offline s390/s390x "swapper"
   idle tasks.  Without the patch, the command fails with the error 
   message "bt: invalid kernel virtual address: ffffffffffffc000  
   type: async_stack".
   (holzheu at linux.vnet.ibm.com)

 - Preparation for future s390x ELF dumpfile format.
   (holzheu at linux.vnet.ibm.com)

 Download from: http://people.redhat.com/anderson




More information about the Crash-utility mailing list