0.4.3 (May 1st, 2014)

Kernel release:

3.8.13-33.el6uek

New features:

  • Timer based profile-* probes (profile provider). These probes use the omni-present cyclic support in the UEK3 kernel (3.8.13-32 and later) to fire probes at a specific frequency/interval on every active CPU.

Bugfixes:

  • Several memory-allocation, underrun and overrun bugs in process handling were fixed. With sufficient ingenuity these may be exploitable by local users who can craft and run unusual ELF executables and arrange for dtrace to attach to them.

  • The pid and ppid variables were being reported based on the kernel task PID, which is not the same as the userspace concept of a PID (for threaded applications). We now pass (more correctly) the thread group id (tgid).

  • Since userspace doesn't know about thread kernel level) pids, we are now also passing the tgid in the result of ustack, usym, etc... We pass the tgid in the first slot, and the (kernel) pid in the second slot.

  • Major reworking of the dtrace_getufpstack() implementation to handle locking, stack detection, and potential page fault while accessing the stack of a task.

Known problems:

  • As a result of earlier code changes to ensure that all memory allocation requests are checked for failures, the test for auto-resize behaviour of the principal buffer allocations results in the dtrace utility aborting processing rather than continuing operation with the reduced buffer size. This is overall a non-harmful regression that will be addressed in a future release.