This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Build-id mismatch: "kernel" vs. "vmlinux" byte 0 (0x82 vs 0x47)


Hi zduan,

On 07/23/2012 08:07 PM, zhenzhong.duan wrote:
> Hi maillist,
> This issue was originally found by our partner. I reproduced it with
> upstream systemtap. Any idea on this?
> 
> I run with newest systemtap and it fail with below msg.
> [root@zhenzhong1 ~]# ./systemtap-2.0-5283/bin/stap -ge 'probe
> kernel.function("sys_read"){printf("aa");}'
> ERROR: Build-id mismatch: "kernel" vs. "vmlinux" byte 0 (0x82 vs 0x47)
> address 0xffffffff8151236c rc 0
> WARNING: /root/systemtap-2.0-5283/bin/staprun exited with status: 1
> Pass 5: run failed. Try again with another '--vp 00001' option.
> 
> [root@zhenzhong1 ~]# eu-readelf -n
> /usr/lib/debug/lib/modules/2.6.39-200.29.2.el6uek.x86_64/vmlinux |grep Build
> Build ID: 825a617a9ee7c66883b0538d241ee012f4ff340f
> [root@zhenzhong1 ~]# eu-readelf -n
> /boot/vmlinuz-2.6.39-200.29.2.el6uek.x86_64 |grep Build
> Build ID: 4769e7a19cb104e200cd082583af38795574c761

This is good information, thank you.  However, it shows that systemtap
is correct that the Build IDs are not the same.  The stap error message
reported "0x82 vs 0x47", and indeed the first bytes that you found in
the files show that exact difference.

> I'm sure kernel and debuginfo match eath other.
> Linux version 2.6.39-200.29.2.el6uek.x86_64
> (mockbuild@ca-build44.us.oracle.com) (gcc version 4.4.6 20110731 (Red
> Hat 4.4.6-3) (GCC) ) #1 SMP Sat Jul 14 10:50:56 EDT 2012

Unfortunately, it is still possible for these to be mismatched, even if
the version strings are identical.  In order for the Build IDs to match,
the packages must come from the exact same compilation run.  One clue to
check this is the "Build Date" information in the rpms, which you may
find with this command:

rpm -qif /boot/vmlinuz-2.6.39-200.29.2.el6uek.x86_64 \
  /usr/lib/debug/lib/modules/2.6.39-200.29.2.el6uek.x86_64/vmlinux

It probably won't match the exact "10:50:56 EDT" time given in your
kernel string, but rather some time after that when the rpms are
actually written.  The kernel and kernel-debuginfo rpms should be the
same build date and time as each other though.

Hope this helps, and let us know what that says.

Josh


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]