1.148. systemtap
1.148.1. RHEA-2011-0037: systemtap bug fix and enhancement update
SystemTap is an instrumentation system for systems running the Linux kernel, version 2.6. Developers can write scripts to collect data on the operation of the system.
This update re-bases SystemTap to upstream version 1.3 (BZ#606726). This re-base applies several upstream enhancements, highlights of which include:
- A new integrated compile-server client is now available as part of
stap
. - A new option,
--ldd
, automatically adds any additional shared libraries needed by probed or "-d
"-listed userspace binaries to the-d
list; this enables symbolic backtracing through them. Similarly, the new--all-modules
option automatically adds any currently loaded kernel modules (listed in/proc/modules
) to the-d
list. - By default the
systemtap-runtime
RPM builds now includes a shared library:staplog.so
. This library allowscrash
to extract systemtap data from avmcore
image. - This re-base also introduces backward-compatibility flags and a deprecation policy, which is useful in preventing future tapset/language changes from breaking valid scripts.
- The
<sys/sdt.h>
user-space markers no longer default to an implicitMARKER_NAME_ENABLED()
semaphore check for each marker. To check for enabled markers use a.d
declaration file, then:if (MARKER_NAME_ENABLED()) MARKER_NAME()
- A new
stap
option,-G VAR=VALUE
, allows users to override global variables by passing the settings tostaprun
as module options. - Iterating with
foreach
can now explicitly save the value for the loop. - A new operator,
@entry
, is available for automatically saving an expression at entry time for use in a.return
probe.
This update also applies the following fixes:
- The
stap-prep
script, packaged with SystemTap, requiresyumdownloader
(supplied byyum-utils
). However,yum-utils
is not a dependency of SystemTap. With this update,yum-utils
is now a dependency of SystemTap. (BZ#513672) - Whenever SystemTap invoked
useradd
, it did so without specifying a UID; as such, any such invocations could result in a 'BAD level' warning. With this update,stap-server
checks the existence of a system UID/GID before invoking anadduser
/groupadd
command. A 155:155 static UID:GID pair will then be assigned to thestap-server
user without UID/GID reservation. In the rare case that such a user already exists on the system, dynamic UID/GID allocation will be used. (BZ#555808) - When loading a module,
stap
executesstapio
to handle interactions. A bug inruntime/staprun/mainloop.c
made it possible forstapio
to fail in executing a module control file even after successfully opening it. When this occurred,stapio
returned an "ERROR: unexpected EOF" when loading/unloading a kernel module concurrently. This update applies an upstream patch toruntime/staprun/mainloop.c
that instructsstapio
to quit (instead of retrying) when a read error occurs, avoiding a loop. (BZ#557165) - When running
rpm -V systemtap systemtap-server
, TPS reported two verification failures:systemtap-server.ppc64: /var/log/stap-server.log .M...UG. [tps:B]
andsystemtap.ppc64: /usr/share/systemtap/runtime/uprobes .M....G. [tps:B]
. This update applies an upstream patch that corrects this. (BZ#559633) - The Red Hat Enterprise Linux 5.4 version of SystemTap contained a
stap-prep
script that is missing in 5.5. This update returns thestap-prep
script. (BZ#573031) - When running multiple
stap
engines simultaneously, it was possible for SystemTap to unload thestap
module before running allutrace
callback handlers. This could result in the kernel calling code in an unloaded module, which would result in a crash. To prevent this from occurring, this update patchesruntime/itrace.c
andruntime/task_finder.c
accordingly, adding a loop that checks for running handlers. SystemTap will now only unload a module when it is safe to do so. (BZ#602706) - When running
service systemtap restart
on a previously stopped script, the script remained halted instead of restarting. This was because the SystemTap initscript incorrectly defined theSCRIPTS
variable. With this update, SystemTap makes local copies of the$SCRIPTS
global variable. This update also addsforce-reload
,reload
,condrestart
, andtry-restart
commands. (BZ#607232) - The
prelink
utility is no longer a SystemTap dependency on Itanium. This dependency was added in previous releases for specific SystemTap test cases. (BZ#629190) - The
-I
option when runningstap
terminated abnormally with a segmentation fault because of the string literal at the end of the file. This update provides a workaround by adding a semi-colin (;) after the string literal, and a fix inparse.cxx
that only inspets the next token if there is one. (BZ#648420)
The following fixes were previously released in a separate, asynchronous errata:
- Due to a string copy being used instead of a formatted string copy, the argstring of the socketpair system call had a wrong "UNKNOWN VALUE". This issue is now resolved. (BZ#560720)
- Although the kernel in Red Hat Enterprise Linux 5.5 for the Itanium architecture introduced a new pipe system call handler,
sys_ia64_pipe
, the function was not added to the SystemTap tapset. As a result, probing the system call from the script viaprobe syscall.pipe
did not succeed. This error has been fixed, the new function has been added to the tapset, and the pipe system call should now be probed correctly. (BZ#568032) - Previously, a change in register contents (such as
$return
) on the Itanium architecture caused a crash due to a flaw in the way the values in the memory were set. Now, a change in register contents no longer results in a crash. (BZ#598615)
For a more detailed list of upstream enhancements and bug fixes applied by the re-base, refer to the following link:
All SystemTap users are advised to apply this update.
1.148.2. RHBA-2010:0608: bug fix update
Updated systemtap packages that resolve two bugs are now available for Red Hat Enterprise Linux 5.
SystemTap is an instrumentation system for systems running the Linux kernel, version 2.6. Developers can write scripts to collect data on the operation of the system.
This update resolves the following bugs:
* due to a string copy being used instead of a formatted string copy, the argstring of the socketpair system call had a wrong "UNKNOWN VALUE". This issue is now resolved. ( BZ#617099)
* previously, a change in register contents (such as $return) on Itanium caused a crash due to a flaw in the way the values in the memory were set. Now, no crash happens when register contents change. ( BZ#617100)
All SystemTap users are advised to upgrade to these updated packages, which fix these bugs.
1.148.3. RHBA-2010:0525: bug fix update
Updated systemtap packages that fix a bug are now available.
SystemTap is an instrumentation system for systems running the Linux kernel, version 2.6. Developers can write scripts to collect data on the operation of the system.
This update fixes the following bug:
* although the kernel in Red Hat Enterprise Linux 5.5 for the Itanium architecture introduced a new pipe system call handler, "sys_ia64_pipe", the function was not added to the SystemTap tapset. As a result, probing the system call from the script via "probe syscall.pipe" did not succeed. This error has been fixed, the new function has been added to the tapset, and the pipe system call should now be probed correctly. ( BZ#604022)
Affected SystemTap users should upgrade to these updated packages, which resolve this issue.