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

Dave Anderson anderson at redhat.com
Wed Feb 22 20:12:02 UTC 2017


Download from: http://people.redhat.com/anderson
                 or
               https://github.com/crash-utility/crash/releases

The github master branch serves as a development branch that will contain 
all patches that are queued for the next release:

  $ git clone git://github.com/crash-utility/crash.git


Changelog:

 - Fix for Linux 4.6 commit b03a017bebc403d40aa53a092e79b3020786537d,
   which introduced the new slab management type OBJFREELIST_SLAB.
   In this mode, the freelist can be an object, and if the slab is full,
   there is no freelist.  On the next free, an object is recycled to be
   used as the freelist but not cleaned-up.  This patch will go through
   only known freed objects, and will prevent "kmem -S" errors that
   indicate "invalid/corrupt freelist entry" on kernels configured
   with CONFIG_SLAB.
   (thgarnie at google.com)

 - Fix for the initialization-time loading of kernel module symbols
   if the kernel crashed while running a module's initcall.  Without
   the patch, the crash session fails during initialation with a message
   similar to "crash: store_module_symbols_v2: total: 7 mcnt: 8".
   (rabinv at axis.com)

 - Fix for a segmentation violation during session inialization when
   running against a 32-bit MIPS ELF kdump or compressed kdump if a 
   per-cpu NT_PRSTATUS note cannot be be gathered from the dumpfile 
   header.  Without the the patch, a segmentation violation occurs after
   the message "WARNING: cannot find NT_PRSTATUS note for cpu: <number>"
   is displayed.
   (rabinv at axis.com)

 - The 32-bit MIPS PGD_ORDER() macro expects __PGD_ORDER to be signed, 
   which it isn't now since the internal machdep->pagesize is unsigned.
   Without this patch, module loading fails during initialization on a 
   kernel that has a page size of 16KB, with messages that indicate
   "please wait... (gathering module symbol data)" followed by
   "crash: invalid size request: 0  type: pgd page".
   (rabinv at axis.com)

 - For ARM64 dumpfiles with VMCOREINFO, verify the new "VA_BITS" number
   against the calculated number.  
   (anderson at redhat.com)

 - Fix for the ARM64 "bt" command in Linux 4.10 and later kernels that
   are configured with CONFIG_THREAD_INFO_IN_TASK.  Without the patch, 
   the "bt" command will fail for active tasks in dumpfiles that were 
   generated by the kdump facility.
   (takahiro.akashi at linaro.org)

 - Fix for Linux 4.10 commit 7fd8329ba502ef76dd91db561c7aed696b2c7720
   "taint/module: Clean up global and module taint flags handling".
   Without the patch, when running against Linux 4.10-rc1 and later
   kernels, the crash utility fails during session initialization with 
   the message "crash: invalid structure size: tnt".
   (panand at redhat.com)

 - Fix for support of /proc/kcore as the live memory source in Linux 4.8
   and later x86_64 kernels configured with CONFIG_RANDOMIZE_BASE, which
   randomizes the unity-mapping PAGE_OFFSET value.  Without the patch, 
   the crash session fails during session initialization with the error
   message "crash: seek error: kernel virtual address: <address>  
   type: page_offset_base".
   (anderson at redhat.com)

 - Update to the module taint flags handling patch above to account for
   the change in size of the module.taints flag from an int to a long, 
   while allowing for a kernel backport that keeps it as an int.
   (anderson at redhat.com)

 - Prepare for the kernel's "taint_flag.true" and "taint_flag.false" 
   member names to be changed to "c_true" and "c_false", which fixes
   build problems when an out-of-tree module defines "true" or "false".
   (anderson at redhat.com)

 - Prevent the livepatch taint flag check during the system banner 
   display from generating a fatal session-killing error if relevant 
   kernel symbol names or data structures change in the future (again).
   (anderson at redhat.com)

 - Fix for the PPC64 "bt" command for non-panicking active tasks in
   FADUMP-generated dumpfiles (Firmware Assisted Dump facility).  
   Without the patch, backtraces of those tasks may be of the form
   "#0 [c0000000700b3a90] (null) at c0000000700b3b50  (unreliable)".
   This patch uses and displays the ptregs register set saved in the
   dumpfile header for the non-panicking active tasks.
   (hbathini at linux.vnet.ibm.com)

 - Fix for a possible segmentation violation when analyzing Linux 4.6
   and earlier x86_64 kernels configured with CONFIG_RANDOMIZE_BASE.
   A segmentation violation may occur during session initialization, 
   just after the patching of the gdb minimal_symbol values message,
   depending upon the value of KERNEL_IMAGE_SIZE, which was variable 
   in the earlier KASLR kernels.  This patch sets the KERNEL_IMAGE_SIZE 
   default value to 1GB for those earlier kernels, and also adds a 
   new "--machdep kernel_image_size=<value>" option that can be 
   used to override the default KERNEL_IMAGE_SIZE value if necessary.
   (anderson at redhat.com)

 - Fix the bracketing of the x86_64 FILL_PML4() macro.
   (anderson at redhat.com)

 - Fix for the "tree -t radix", "irq", and "files -p" command options 
   in Linux 4.6 and later kernels due to upstream changes in the radix
   tree facility.  Without the patch, the commands will fail with the
   message "radix trees do not exist or have changed their format".
   (hirofumi at mail.parknet.co.jp)

 - Fix for the "trace.c" extension module.  The kernel buffer referenced
   by "max_tr_ring_buffer" is not available in all configurations of the
   kernel so the unitialized max_tr_ring_buffer variable should not be 
   used.  A similar check existed previously before the recent rework of
   the trace extension module to support multiple buffers.
   (rabinv at axix.com)

 - Clarification in the display of CONFIG_SLUB object addresses that are
   displayed by the "kmem" command when SLAB_RED_ZONE has been enabled.
   By default, CONFIG_SLUB object addresses that are displayed by the
   "kmem" command will  point to the SLAB_RED_ZONE padding inserted at 
   the beginning of the object.  As an alternative, a new "redzone"
   environment variable has been addedd that can be toggled on or off.
   If "set redzone off" is entered, the object addresses will point to
   the address that gets returned to the allocator.
   (hirofumi at mail.parknet.co.jp, anderson at redhat.com)
 
 - Fix for the "CURRENT" value displayed by the "timer -r" command. 
   Without the patch, if the target machine has been up for a long 
   enough time, an arithmetic overflow will occur and the time value 
   displayed will be incorrect.
   (shane.seymour at hpe.com)

 - Fix for 32-bit X86 kernels configured with CONFIG_RANDOMIZE_BASE.
   Without the patch, an invalid kernel PAGE_OFFSET value is calculated
   and as a result the session fails during session initialization just
   after the patching of the gdb minimal_symbol values message, showing
   the warning message "WARNING: cannot read linux_banner string",
   followed by "crash: /vmlinux and /dev/crash do not match!".  This 
   patch also adds a new "--machdep page_offset=<value>" option that
   can be used if the CONFIG_PAGE_OFFSET value is not the default 
   address of 0xc0000000.
   (anderson at redhat.com)

 - Introduction of a new PPC64-only "mach -o" option that dumps the OPAL 
   "Open Power Abstraction Layer" console buffer.
   (ankit at linux.vnet.ibm.com)

 - Fix for the "bt" command on Linux 4.9 and later 32-bit X86 kernels
   containing kernel commit 0100301bfdf56a2a370c7157b5ab0fbf9313e1cd, 
   subject "sched/x86: Rewrite the switch_to() code".  Without the 
   patch, backtraces for inactive (sleeping) tasks fail with the message 
   "bt: invalid structure member offset: task_struct_thread_eip".
   (anderson at redhat.com)

 - Fix for a "[-Wmisleading-indentation]" compiler warning and the
   associated bug that is generated by lkcd_x86_trace.c when building 
   32-bit X86 with "make warn" with gcc-6.3.1.
   (anderson at redhat.com)

 - Fix for an invalid "bt" warning on a 32-bit X86 idle/swapper task. 
   Without the patch, the backtrace displays the "cannot resolve stack
   trace" warning, dumps the backtrace, and then the text symbols:

     crash> bt
     PID: 0      TASK: f0962180  CPU: 6   COMMAND: "swapper/6"
     bt: cannot resolve stack trace:
      #0 [f095ff1c] __schedule at c0b6ef8d
      #1 [f095ff58] schedule at c0b6f4a9
      #2 [f095ff64] schedule_preempt_disabled at c0b6f728
      #3 [f095ff6c] cpu_startup_entry at c04b0310
      #4 [f095ff94] start_secondary at c04468c0
     bt: text symbols on stack:
         [f095ff1c] __schedule at c0b6ef8d
         [f095ff58] schedule at c0b6f4ae
         [f095ff64] schedule_preempt_disabled at c0b6f72d
         [f095ff6c] cpu_startup_entry at c04b0315
         [f095ff94] start_secondary at c04468c5
     crash> 

   The backtrace shown is actually correct.
   (anderson at redhat.com)

 - Another fix for a similar "bt: cannot resolve stack trace" warning
   on a 32-bit X86 idle/swapper task, but when running on cpu 0.
   (anderson at redhat.com)

 - Remove two one-time warning messages that are displayed when running
   the "bt" command on Linux 4.2 and later 32-bit X86 kernels.  Without
   the patch, the first "bt" command that is executed will be preceded
   by "bt: WARNING: "system_call" symbol does not exist", followed by 
   "bt: WARNING: neither "ret_from_sys_call" nor "syscall_badsys" 
   symbols exist". 
   (anderson at redhat.com)
   
 - Fix for Linux 3.15 and later 32-bit X86 kernels containing kernel
   commit 198d208df4371734ac4728f69cb585c284d20a15, titled "x86: Keep 
   thread_info on thread stack in x86_32".  Without the patch, incorrect
   addresses of each per-cpu hardirq_stack and softirq_stack were saved
   for usage by the "bt" command.
   (hirofumi at mail.parknet.co.jp, anderson at redhat.com)

 - Additional fix for Linux 3.15 and later 32-bit X86 kernels containing
   kernel commit 198d208df4371734ac4728f69cb585c284d20a15, titled "x86: 
   Keep thread_info on thread stack in x86_32".  The patch fixes the
   stack transition symbol from "handle_IRQ" to "handle_irq" for usage
   by the "bt" command.
   (anderson at redhat.com)

 - Fix for 32-bit X86 kernels to determine the active task in a dumpfile
   in the situation where the task was running on its soft IRQ stack, 
   took a hard IRQ, and then the system crashed while it was running on
   its hard IRQ stack. 
   (hirofumi at mail.parknet.co.jp)

 - Allow the "--kaslr=<offset>" and/or "--kaslr=auto" command line 
   options to be used with the 32-bit X86 architecture.
   (anderson at redhat.com)

 - Removed -Werror from the bfd and opcode library builds.
   (anderson at redhat.com)




More information about the Crash-utility mailing list