Bug 1445649

Summary: crash: running disassemble cmd returns error: "gdb: gdb request failed"
Product: Red Hat Enterprise Linux 7 Reporter: Emma Wu <xiawu>
Component: crashAssignee: Dave Anderson <anderson>
Status: CLOSED ERRATA QA Contact: Emma Wu <xiawu>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.4CC: qzhao, zsun
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: crash-7.1.9-2.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 22:04:38 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Comment 2 Dave Anderson 2017-04-26 13:26:44 UTC
This is a KASLR issue.  Except for the patched gdb minimal_symbols, the embedded
gdb still operates under the assumption that the (non-relocated) text locations
in the vmlinux file are correct.   

I never use the gdb "disassemble" command, and so I never noticed this until
now.  The crash "dis" command is always preferable to use instead of the 
native gdb command.  It's possible that the gdb disassemble command may have
to be prohibited with KASLR kernels.

Comment 3 Dave Anderson 2017-05-01 19:47:53 UTC
I tinkered with this for a couple of days, and failed to come up with a
reasonable solution in the gdb code.  And given that the crash "dis" command
is the preferred manner of text disassembly, I'm not going to pursue it
any further -- except to clarify the error message as shown in this
example:

  crash> disassemble sys_read
  crash: the gdb "disassemble" command is prohibited because the kernel text
         was relocated by KASLR; use the crash "dis" command instead.
  crash>

A patch for the new error message has been pushed upstream:

https://github.com/crash-utility/crash/commit/c85a70ba752ac31e729a753a03b836dc5591714b

  The native gdb "disassemble" command fails if the kernel has been
  compiled with CONFIG_RANDOMIZE_BASE because the embedded gdb module
  still operates under the assumption that the (non-relocated) text
  locations in the vmlinux file are correct.  The error message that
  is issued is somewhat confusing, indicating "No function contains
  specified address".  This patch simply clarifies the error message
  to indicate "crash: the gdb "disassemble" command is prohibited
  because the kernel text was relocated by KASLR; use the crash "dis"
  command instead."
  (anderson)

I'm not sure whether I should just close this BZ as CANTFIX, or to
give it a devel_ack+ for rhel-7.4.  

Do you consider this worthy of an errata respin?

Comment 8 errata-xmlrpc 2017-08-01 22:04:38 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2019