Bug 729001

Summary: Debug file missing in debuginfo package for a binary
Product: Red Hat Enterprise Linux 6 Reporter: Karel Klíč <kklic>
Component: nfs-utilsAssignee: Steve Dickson <steved>
Status: CLOSED ERRATA QA Contact: yanfu,wang <yanwang>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.3CC: rvokal
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: nfs-utils-1.2.3-12.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-06 18:54:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 727919, 743047    

Description Karel Klíč 2011-08-08 15:18:59 UTC
A problem related to debuginfo was found in the nfs-utils-1.2.3-7.el6 package. This issue might affect crash analysis done by Automatic Bug Reporting Tool and its retrace server, and also prevent proper debugging of crashes via GDB.

A debuginfo file for a binary is not present in the debuginfo package. This might be caused by:
 - binary being compiled without debugging information
 - debugging information being removed from the binary by a build script
 - rpmbuild failing to extract debugging information from a binary in a buildroot because of permissions (eg. suid binaries, binaries without executable flag set)

affected binary: /usr/sbin/rpcdebug
affected package: nfs-utils-1.2.3-7.el6.i686
binary doesn't contain debug sections (it was probably stripped)
affected binary file mode: 100755

This issue can be investigated by using eu-readelf tool from the elfutils package. Use `eu-readelf --notes /path/to/binary` to get build ID of a binary. Then check that the debuginfo package does not contain /usr/lib/debug/.build-id/<aa>/<bbbbbbbb>, where <aa> are the first two chars of the build ID, and <bbbbbbbb> is the rest of it. It should be a symlink pointing back to the binary.

(This bug was detected and filed by a script.)

Comment 2 Steve Dickson 2011-08-15 13:39:26 UTC
(In reply to comment #0)
> A problem related to debuginfo was found in the nfs-utils-1.2.3-7.el6 package.
> This issue might affect crash analysis done by Automatic Bug Reporting Tool and
> its retrace server, and also prevent proper debugging of crashes via GDB.
> 
> A debuginfo file for a binary is not present in the debuginfo package. This
> might be caused by:
>  - binary being compiled without debugging information
>  - debugging information being removed from the binary by a build script
>  - rpmbuild failing to extract debugging information from a binary in a
> buildroot because of permissions (eg. suid binaries, binaries without
> executable flag set)
> 
> affected binary: /usr/sbin/rpcdebug
> affected package: nfs-utils-1.2.3-7.el6.i686
> binary doesn't contain debug sections (it was probably stripped)
> affected binary file mode: 100755
> 
> This issue can be investigated by using eu-readelf tool from the elfutils
> package. Use `eu-readelf --notes /path/to/binary` to get build ID of a binary.
> Then check that the debuginfo package does not contain
> /usr/lib/debug/.build-id/<aa>/<bbbbbbbb>, where <aa> are the first two chars of
> the build ID, and <bbbbbbbb> is the rest of it. It should be a symlink pointing
> back to the binary.
> 
> (This bug was detected and filed by a script.)
So what need to happen?

Comment 3 Karel Klíč 2011-09-12 17:12:19 UTC
rpcdebug tool is being installed in the nfs-utils.spec %install section:

install -s -m 755 tools/rpcdebug/rpcdebug $RPM_BUILD_ROOT/usr/sbin

The '-s' option causes the binary to be stripped of debugging information during the install. Please remove the '-s' option there.

Comment 5 yanfu,wang 2011-10-09 07:11:02 UTC
reproduced on nfs-utils-1.2.3-7.el6:
.live.[root@x86-64-6s-m1 ~]# rpm -qa|grep nfs-utils
nfs-utils-1.2.3-7.el6.x86_64
nfs-utils-lib-devel-1.1.5-3.el6.x86_64
nfs-utils-lib-1.1.5-3.el6.x86_64
nfs-utils-lib-debuginfo-1.1.5-3.el6.x86_64

.live.[root@x86-64-6s-m1 ~]# eu-readelf --notes /usr/sbin/rpcdebug

Note section [ 2] '.note.ABI-tag' of 32 bytes at offset 0x21c:
  Owner          Data size  Type
  GNU                   16  VERSION
    OS: Linux, ABI: 2.6.18

Note section [ 3] '.note.gnu.build-id' of 36 bytes at offset 0x23c:
  Owner          Data size  Type
  GNU                   20  GNU_BUILD_ID
    Build ID: 16550087196a3eba2cfb1fcc2b6cfc5ae2bcd7d5

.live.[root@x86-64-6s-m1 ~]# ls -la /usr/lib/debug/.build-id/16/550087196a3eba2cfb1fcc2b6cfc5ae2bcd7d5
ls: cannot access /usr/lib/debug/.build-id/16/550087196a3eba2cfb1fcc2b6cfc5ae2bcd7d5: No such file or directory


verified on nfs-utils-1.2.3-12.el6:
[root@hp-xw4550-01 ~]# eu-readelf --notes /usr/sbin/rpcdebug

Note section [ 2] '.note.ABI-tag' of 32 bytes at offset 0x148:
  Owner          Data size  Type
  GNU                   16  VERSION
    OS: Linux, ABI: 2.6.18

Note section [ 3] '.note.gnu.build-id' of 36 bytes at offset 0x168:
  Owner          Data size  Type
  GNU                   20  GNU_BUILD_ID
    Build ID: 1181c7750458b71c1c4421887dd40c2bc2de9c9a

[root@hp-xw4550-01 ~]# ls -l /usr/lib/debug/.build-id/11/81c7750458b71c1c4421887dd40c2bc2de9c9a
lrwxrwxrwx. 1 root root 25 10月  9 03:05 /usr/lib/debug/.build-id/11/81c7750458b71c1c4421887dd40c2bc2de9c9a -> ../../../../sbin/rpcdebug

and do code review to check the '-s' option had been removed in the nfs-utils.spec %install section:
install -m 755 tools/rpcdebug/rpcdebug $RPM_BUILD_ROOT/usr/sbin

Comment 6 errata-xmlrpc 2011-12-06 18:54:10 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.

http://rhn.redhat.com/errata/RHSA-2011-1534.html