1WARNING::BUILDID(7stap)                                WARNING::BUILDID(7stap)
2
3
4

NAME

6       warning::buildid - build-id verification failures
7
8
9
10

DESCRIPTION

12       Because  systemtap's  script translation / execution stages may be exe‐
13       cuted at different times and places, it is sometimes necessary to  ver‐
14       ify  certain  invariants.   One  such invariant is that if a script was
15       informed by translate-time analysis of  executables,  then  those  same
16       executables  need  to be used at run time.  This checking is done based
17       upon the build-id,  a  binary  hash  that  modern  (post-2007)  compil‐
18       ers/toolchains  add  as an NT_GNU_BUILD_ID ELF note to object files and
19       executables.  Use the readelf -n command to examine  the  build-ids  of
20       binaries, if you are interested.
21
22
23       Only  scripts  are sensitive to executables' build-ids: generally those
24       that perform deep analysis of the binaries  or  their  debuginfo.   For
25       example,  scripts  that  place  .function  or .statement probes, or use
26       stack backtrace-related  tapset  functions  may  be  sensitive.   Other
27       scripts  that  rely  only on process.mark or kernel.trace probes do not
28       require debuginfo.  See  the  DWARF  DEBUGINFO  section  in  the  stap‐
29       probes(3stap) man page.
30
31
32       During  translation,  systemtap  saves  a  copy  of the relevant files'
33       build-ids within the compiled modules.  At run-time, the  modules  com‐
34       pare  the  saved  ones to the actual run-time build-ids in memory.  The
35       warning message indicates that they did not match, so the  module  will
36       decline  placing  a  probe  that was computed based upon obsolete data.
37       This is important for safety,  as  placing  them  at  an  inappropriate
38       address  could  crash the programs.  However, this is not necessarily a
39       fatal error, since probes unrelated to  the  mismatching  binaries  may
40       operate.
41
42
43       A build-id mismatch could be caused by a few different situations.  The
44       main one is where the executable versions or architecture were  differ‐
45       ent  between the systemtap translation and execution times/places.  For
46       example, one may run a stap-server on a slightly different  version  of
47       the  OS distribution.  Someone may have rebuilt a new kernel image, but
48       preserved the previous version numbers.   The  kernel  running  on  the
49       workstation may be slightly different from the version being targeted -
50       perhaps due to a pending kernel upgrade leaving different files on disk
51       versus running in memory.  If your OS distribution uses separate debug‐
52       info packages, the split .debug files may not exactly  match  the  main
53       binaries.
54
55
56       To  disable  build-id  verification  warnings, if one is confident that
57       they are an artefact of build accidents rather than  a  real  mismatch,
58       one might try the -DSTP_NO_BUILDID_CHECK option.
59
60

SEE ALSO

62       http://fedoraproject.org/wiki/Releases/FeatureBuildId,
63       stap(1),
64       stapprobes(3stap),
65       warning::debuginfo(7stap),
66       error::reporting(7stap)
67
68
69
70                                                       WARNING::BUILDID(7stap)
Impressum