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

Dave Anderson anderson at redhat.com
Fri Sep 20 15:08:47 UTC 2019


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:
  
 - Document the "-N", "-g" and "-z" options in the "help" command's 
   help page. 
   (k-hagio at ab.jp.nec.com)

 - Fix for a crash-7.2.6 regression to the "p" command.  Without the
   patch, a gdb pass-through command construct such as:
     p ((struct zone *)0xffff901e3ffda000)->min_slab_pages
   gets parsed incorrectly, and the "-" is mistaken for an argument
   option, and each of the subsequent characters are marked as an 
   "invalid option". 
   (dwysocha at redhat.com)

 - Export the get_mount_list() and get_dump_level() functions in defs.h
   for use by extension modules.
   (k-hagio at ab.jp.nec.com)

 - Change the gating of a debug message in the do_xarray_dump_cb() 
   function from CRASHDEBUG(0) to CRASHDEBUG(1).  Without the patch, 
   users of the XArray callback functionality may see messages of the
   sort "entry has XARRAY_TAG_MASK bits set: 239ab0024001" without 
   setting a debug number.
   (anderson at redhat.com)

 - Fix for Linux 5.2 and later x86_64 kernels that contain kernel commit
   e6401c13093173aad709a5c6de00cf8d692ee786, titled "x86/irq/64: Split
   the IRQ stack into its own".  Without the patch, the per-cpu IRQ 
   stack addresses cannot be determined, and as a result backtraces 
   that utilize an IRQ stack will fail.
   (anderson at redhat.com)

 - Fix to allow live system analysis of s390x kernels that have been
   configured with CONFIG_RANDOMIZE_BASE=y (KASLR).  Without the patch,
   the "--kaslr=<offset>" command line option is required.
   (anderson at redhat.com)

 - Fix for Linux 5.2 and later x86_64 kernels that contain kernel commit
   019b17b3ffe48100e52f609ca1c6ed6e5a40cba1, titled "x86/exceptions: Add
   structs for exception stacks".  Without the patch, the exception 
   stack sizes cannot be determined, and as a result backtraces 
   that initiate from an exception stack will fail with error messages 
   indicating "bt: invalid kernel virtual address: <address> type: 
   stack contents" and then "bt: read of stack at <address> failed".
   (anderson at redhat.com)

 - Two fixes for the "sys -c" option, one that significantly shortens 
   the time consumed by the option, and a second fix that addresses 
   occasional situations where the file and line number data are not
   displayed.
   (k-hagio at ab.jp.nec.com)

 - Fix for a signed/unsigned comparison bug in vmcoreinfo_read_string()
   which could lead to a segmentation violation in the highly unlikely
   event of a zero length or severely truncated VMCOREINFO note.
   (nudasnev at microsoft.com)

 - Fix for the determination of the ARM64 "kimage_voffset" value 
   in Linux 4.6 and later kernels if an ELF format dumpfile:
    (1) does not contain its value in a VMCOREINFO note, and
    (2) if the kernel image was loaded at a higher address than the 
        system's physical base address. 
   This may happen, for example, when analyzing a dynamically-created
   ramdump-to-ELF dumpfile.
   (zhaoqianli at xiaomi.com, anderson at redhat.com)

 - Fix for Linux 4.16 and later ARM64 kernels that contain kernel commit
   fa2a8445b1d3810c52f2a6b3a006456bd1aacb7e, titled "arm64: allow ID map
   to be extended to 52 bits", and which have been configured with both
   CONFIG_DEVMEM=y and CONFIG_STRICT_DEVMEM=y.  Without the patch, an
   inconsequential error message indicating "crash: read error: kernel 
   virtual address: <address> type: idmap_ptrs_per_pgd" is displayed
   during initialization.
   (anderson at redhat.com)

 - Introduction of a new "bt -p" option that generates a backtrace of 
   the panic task, regardless of the current context.  This option is 
   only applicable when running against dumpfiles in which the panic 
   task is known.  
   (atomlin at redhat.com)

 - When the gdb-7.6.patch file is updated in an existing source tree, 
   it gets re-applied during the next build using "patch -N --fuzz=0",
   which ignores patches that have already been applied.  However, if 
   a gdb file has been modified multiple times, the secondary patching
   may fail to recognize that a given patch has been previously applied,
   and will attempt to re-apply it.  To prevent any uninintended 
   consequences, the gdb-7.6.patch file will also act as a shell script
   invoked by the Makefile, which restores any selected gdb file to its 
   original state prior to all secondary patch applications.
   (anderson at redhat.com)

 - As an addendum to the previous patch for updating the gdb-7.6.patch
   in an existing pre-built source tree, when rebuilding for the ppc64
   architecture, do not restore the selected gdb files.  This is because
   the gdb-7.6-ppc64le-support.patch will have modified the selected 
   files during the initial build.
   (anderson at redhat.com)

 - Extend the "timer" command with a new "TTE" column that displays the
   remaining time in jiffies until the expiration of a timer entry, and
   where a negative value displays the number of jiffies that have 
   elapsed since a timer has expired.
   (oleksandr at redhat.com)

 - Fix for a "warning: cast to pointer from integer of different size 
   [-Wint-to-pointer-cast]" compiler message generated by the previous
   "timer" patch when compiling kernel.c on 32-bit architectures.
   (anderson at redhat.com)

 - Fix to the x86_64 "--machdep phys_base=<value>" command line option
   to allow the use of a negative decimal number as the value.  Without 
   the patch, only the hexadecimal representation of the value would be
   accepted.
   (v-santy at microsoft.com, anderson at redhat.com)

 - Introduction of a new "rd -R" option, which will display memory in
   reverse order.  Memory will be displayed up to and including the
   address argument, which requires that the count argument be greater 
   than 1 in order to display memory before the specified address.
   (anderson at redhat.com)

 - Add support for the "count" argument to be used in conjunction with
   the "dis -r" and "dis -f" reverse/forward modes of operation.  In
   reverse mode, the specified "count" number of instructions leading 
   up to and including the target address will be displayed.  In forward
   mode, the display will be limited to "count" instructions.  Without
   the patch, using a count argument in either mode generates a "count
   argument ignored" message, and the command proceeds as if it had
   not been entered.
   (anderson at redhat.com, atomlin at redhat.com)

 - Fix a memory leak in the previous "dis" commit.
   (anderson at redhat.com)

 - Implemented a new "error" environment variable that sets the 
   destination of error messages.  It can be set to either:
     "default": error messages are always displayed on the 
        console; if the output of a command is piped to an 
        external command or redirected to a file, the error
        messages are also sent to the pipe or file.
     "redirect": if the output of a command is piped to an 
        external command or redirected to a file, error messages
        are only sent to the pipe or file; otherwise they are 
        displayed on the console.
     "filename": error messages are only sent to the specified
        filename; they are not displayed on the console and 
        are not sent to a pipe or file.
   (dkwon at redhat.com)

 - Fix for the "kmem -n" option on Linux 5.3-rc1 and later kernels 
   that contain commit 326e1b8f83a4318b09033ef754f40c785aed5e68,
   titled "mm/sparsemem: introduce a SECTION_IS_EARLY flag".  Without
   the patch, mem_map addresses containing the flag in bit 3 incorrectly
   show it as part of the virtual address; with the patch, the option 
   displays the new "E" state flag.
   (k-hagio at ab.jp.nec.com)

 - Fix for the "timer" command in RHEL7.6 and later RHEL7 kernels.
   Without the patch, the command emits extra faulty timer entries 
   because the tvec_root.vec[] and tvec.vec[] arrays are tracked using 
   hlist_head structures where list_head structures should be used.
   (k-hagio at ab.jp.nec.com)

 - crash-7.2.4 commit 6596f1121b added a "list -B" option to allow more
   efficient enumeration of longer lists.  There is a small bug with 
   this option where it may incorrectly flag a loop length of "0" on 
   list of length 1, indicating "list: loop detected, loop length: 0".
   Since it is impossible to have a loop of length 0, the erroneous 
   message can be prevented by ensuring the list count is non-zero.
   (dwysocha at redhat.com)
 
 - Create the specified installation directory if it does not exist.  
   Without the patch, the Makefile's "make install" target will fail 
   if the INSTALLDIR and/or DESTDIR macros resolve to a non-existent 
   directory.
   (pmenzel at molgen.mpg.de)

 - Fix for the internal caching of the kernel's mem_map array of page
   structures.  Without the patch, in rare circumstances, commands such
   as "kmem -p" may erroneously receive zero-filled page structures.
   (k-hagio at ab.jp.nec.com)

 - Fix to prevent a potential segmentation violation when accessing 
   the compressed configuration data contained in kernels that are 
   configured with CONFIG_IKCONFIG.
   (chenqiwu at xiaomi.com)

 - Determine the ARM64 SECTION_SIZE_BITS value using the following
   order of precedence:
    (1) from the VMCOREINFO data if it exists
    (2) from the in-kernel configuration data if it exists
    (3) the default value
   (chenqiwu at xiaomi.com)




More information about the Crash-utility mailing list