ELBA-2022-9532 - dtrace bug fix update

Release Date:2022-06-30


- Add support for assocaitive arrays.
- Add support for allcoa() and bcopy(). (Nick Alcock)
- Add support for inet_ntoa(), progenyof(), getmajor(), getminor(),
mutex_owned(), mutex_owner(), mutex_type_adaptive(), mutex_type_spin(),
rw_read_held(), rw_write_held(), and rw_iswriter(). (Eugene Loh)
- Improved fault handling. (Nick Alcock, Kris Van Hees)
- Various disassembler improvements, esp. annotations.
- Strings are no longer stored using a length prefix.
- The trace() action now supports arrays, structs, and unions.
- Various testsuite fixes and improvements. [Orabug: 34112342]
- Various code improvements. [Orabug: 34112342]

- Add support for UEK7. [Orabug: 33806867]

- Add support for strtok(). (Eugene Loh)
- Implement TLS (thread-local storage) variables.
- Add support for basename(), dirname(). (Eugene Loh)
- Generic hash table improvements and consistent use of htabs. (Nick Alcock)
- CTF improvements in view of better kernel support. (Nick Alcock)
- Add support for ftruncate(). (Eugene Loh)
- Add support for rand(). (Eugene Loh)
- Fix string constant handling for strings longer than strsize.
- Optimization of substr(), strjoin(), and storing strings in the trace buffer.
- Various string handling fixes and improvements. (Eugene Loh, Kris Van Hees)
[Orabug: 33651682]
- Various testsuite fixes and improvements. [Orabug: 33651682]
- Various code improvements. [Orabug: 33651682]

- Support running dtrace under valgrind. (Nick Alcock) [Orabug: 32760574]
- Implementation of speculative tracing. (Nick Alcock)
- Add support for string comparison. (Eugene Loh)
- Add support for strchr(), strrchr(), index(), rindex(), strstr(), lltostr().
(Eugene Loh)
- Add support for symbols in compressed kernel modules. (Nick Alcock)
- Add support for htonl, htonll, htons, ntohl, ntohll, ntohs. (Eugene Loh)
- Various testsuite fixes and improvements. [Orabug: 33474154]
- Various code improvements. [Orabug: 33474154]

- Implement argument retrieval for SDT probes.
- Introduce 'bpflog' runtime option to request BPF verifier log.
- Implementation improvements for memry copy operations.
- Fix type alignment handling for enums.
- Fix ERROR-in-BEGIN probe handling.
- Transition from variable-length string size to 2-byte string size.
- Fix size of string data in the trace output buffer.
- Fix data size for value copy.
- Add support for strjoin() subroutine.
- Add support for substr() subroutine.

- Consolidated development of newly ported features. [Orabug: 33037106]
- Implement built-in variables: probeprov, probemod, probefunc, probename.
- Implement built-in variables: caller, stackdepth, ucaller, ustackdepth,
errno, walltimestamp. (Eugene Loh)
- Implement actions: stack(), ustack(). (Eugene Loh)
- Implement subroutine: strlen().
- Implement option: -Z (partial). (Eugene Loh)
- Added support for string constants and string values.
- Added support for strings to trace().
- Fixed storage size determination for global and local variables.
- Improved storage layout for global and local variables.
- Mark aggregation actions as non-data recording actions. (Eugene Loh)
- Load string constant table into the 'strtab' BPF map.
- Load probe description data into the 'probes' BPF map.
- Consolidate all string hash functions into a single hash function.
- Implement variable length integer support.
- Store the length of each string as a variable length integer inline with its
character stream.
- Improve memcpy() internal BPF function.
- Testsuite improvements. (Eugene Loh)

- Memory corruption fix in pid probe discovery.

- Implement the ERROR probe. [Orabug: 32749498]
- Add checks in BPF programs for division by zero and NULL pointer dereference.
[Orabug: 32749498]
- Implement the pid provider for userspace function boundary tracing.
[Orabug: 32749504]
- Implement the -w option to explicitly allow destructive actions.
[Orabug: 31632678]
- Add support in translators for more than two kernel variants. (Nick Alcock)
[Orabug: 32748968]
- Switch from condition variable to eventfd for process death notifications.
[Orabug: 32125018]
- Implement normalize() and denormalize() actions.
- Reworking of kernel tracepoint based providers. [Orabug: 32125018]
- Reworking of global and local variable storage to allow for values sizes
beyond 8 bytes. (Eugene Loh) [Orabug: 32125018]
- Implement -xbpflogsize option. (Eugene Loh) [Orabug: 32125018]
- Improvements to -xdisasm support. (Eugene Loh) [Orabug: 32125018]
- Fix bitfield operations. (Eugene Loh) [Orabug: 32125018]
- Sample scripts for building DTrace on Ubuntu. (David McLean)
- Coding style updates. (Eugene Loh)
- Testsuite updates.

- Implement aggregation support code for both producer and consumer.
[Orabug: 32254734]
- Implement aggregation functions: count(), lquantize().
- Implement aggregation functions: avg(), llquantize(), quantize().
(Eugene Loh)
- Implement aggregation functions: max(), min(), stddev(), sum().
(David McLean)
- Implement the printa() action.
- Rework BPF code generation to use emit*() macros.
- Fix bitwise negation. (Eugene Loh) [Orabug: 32125018]
- Fix reporting when all quantize() data is in the last bin. (Eugene Loh)
[Orabug: 32148161]
- Load pre-compiled BPF functions even if they do not have relocations.
(Eugene Loh)
- Testsuite updates.
- Fix END probe execution when consumer stops the producer.
- Force use of bash as shell.

- Implement the freopen() action. (Eugene Loh)
- Implement the system() action. (Eugene Loh)
- Implement the id built-in variable. (David McLean)
- Implement the ppid built-in variable. (Eugene Loh)
- Improve annotations in the disassembler.
- Implement proper BEGIN and END probe semantics.
- Correct exit() action semantics.
- Correct signed divide and modulo operations. (Eugene Loh)
- Correct code generation for post-decrement expressions. (Eugene Loh)
- Various compilation fixes.
- Better support for different distributions and compiler versions.

- Ensure a minimum locked-memory limit for BPF.
- int8_t is now always signed, even on platforms where char is unsigned.

- Implement profile-n and tick-n probes. (Eugene Loh)
- Implement the printf() action.
- Implement the raise() action.
- Support probe specifications with wildcards.
- Support multiple clauses for each probe.
- Support built-in variables: arg0 through arg9 (for probes that provide
arguments), curcpu curthread, epid, gid, pid, tid, uid, and timestamp.
- Various memory management fixes.
- Register leak fixes.

- Implement BEGIN and END probes. (Eugene Loh) [Orabug: 31220513]
- Implement a probe cleanup mechanism for providers.
(Eugene Loh) [Orabug: 31220519]
- Implement the exit() action. [Orabug: 31220520]
- Implement the flowindent option. [Orabug: 31220522]
- Implement the -xdisasm=n option. [Orabug: 31220524]
- Implement linking of precompiled BPF functions. [Orabug: 31220525]
- Fix memory leaks and minor uninitialized-data bugs. [Orabug: 31220517]
- Fix load-before-store BPF verifier errors for local variables.
[Orabug: 31220527]
- Fix post-increment code generation. [Orabug: 31220528]
- Fix register clobbering and implement register spilling. [Orabug: 31187562]
- Add error and drop tag verification for tests. [Orabug: 31220521]
- Various code cleanup and errata release preparation. [Orabug; 31220516]
- Ensure that bpf_dlib.o is installed.
- Fix the creation of FBT return probes.

- Sync with latest development code.
- Implement perf event output buffer management and processing.
- Introduce dt_calloc() to use in all array allocations.
- Provide support for building against libdtrace-ctf and libctf, with
preference given to libctf (if available).
- Implement association of BPF programs with probe events.

- Update spec file for build requirements.
- Sync with latest development code.
- Ensure that pre-release banner does not interfere with test result

- Update spec file for build requirements.

- Support building on aarch64.

- Support building on systems with older kernels and/or glibc.

- Change the kernel build version to 5.4.0-1948.2.

- Change the kernel build version to 5.2.8-1933.

- DTrace implementation based on BPF (initial portions).

- Add more DTRACE_PROBE definitions to sdt.h, for SystemTap
compatibility, and test them (Tomas Jedlicka) [Orabug: 27721525]
- Fix disassembler coredump (Tomas Jedlicka) [Orabug: 28054399]
- Fix process-termination-related crash and deadlock bugs
(Nick Alcock, Tomas Jedlicka) [Orabug: 27961105, 28133496]
- Fix deadlock on creation of new threads in -c/-p processes
[Orabug: 28210986]
- Properly handle breakpoints tripped while DTrace is exiting
[Orabug: 28473826]
- Do not crash on self-grabs and on races with dtrace termination
[Orabug: 28361373]
- New ctfpath option, allowing explicit specification of ctf archives
to use for the running kernel (Tomas Jedlicka) [Orabug: 28178265]
- Fix memory leaks and minor uninitialized-data bugs [Orabug: 28247636]
- Add test for SDT argument retrieval from stack, in UEK4QU7
(Kris Van Hees) [Orabug: 25949088]
- Remove preallocation from the buffering testsuite (Tomas Jedlicka)
[Orabug: 27998779]
- Speed up aggmod tests (Eugene Loh) [Orabug: 28007146, 28119700]
- Include the smoketests in make check [Orabug: 28128338]
- Test fixes (boost timeouts, kernel 4.17 compatibility,
unskip a forgotten test).
- Improve testsuite temporary file creation (Eugene Loh)
[Orabug: 28142056]
- Clean up compiler warnings (Eugene Loh) [Orabug: 27934422, 27998779]

- Testsuite fixes [Orabug: 27995907]

- ARM64 USDT and pid probe support (Kris Van Hees) [Orabug: 27847969]
- Fix -c option on ARM64 (Kris Van Hees) [Orabug: 27847946]
- Disable pid provider tests on UEK4.
- Testsuite fixes [Orabug: 27921244, 27919918]

- Enabled tst.default.d in smoketests.

- Updated translators to match new kernel redesign of per-task and
per-process data. [Orabug: 27731759]
- Enhanced build system to support multiple kernels [Orabug: 27731756]
- Added pid provider support (Kris Van Hees) [Orabug: 27609459]
- Adjusted the interpretation of /proc/kallmodsyms for aarch64
(Eugene Loh) [Orabug: 27214992]

- Change dtrace_proc_*() public interfaces to take a struct dtrace_proc,
avoiding lifecycle issues that can cause access to freed memory when
victims are exec()ing rapidly [Orabug: 27501199]
- Bump library soname to libdtrace.so.1 [Orabug: 27501199]
- Improve handling of symbol name->address and address->name lookup
(Eugene Loh) [Orabug: 27214992]
- Check array bounds at compile time [Orabug: 27382268]
- Fix dtrace -S not printing actions other than the first (Tomas Jedlicka)
[Orabug: 27565023]
- Drop expensive, unnecessary bad page state checking from testsuite
[Orabug: 27577555]
- Handle interruptions in the testsuite runner better [Orabug: 27577593]
- Consider erratically failing tests in some directories to be passes
- Test fixes [Orabug: 27583002, 27651838]

- Internal development release.
- Several latent porting bugs fixed (Kris Van Hees)
- Make tests used in smoke testsuite rely on sdt less
(Kris Van Hees)

- Internal development release.
- ARM64 support [Orabug: 27438960, 27438993, 27438977]
- Include correct procfs.h (Tomas Jedlicka) [Orabug: 27266725]

- Internal development release.
- Bring back translators for 4.14.

- Internal development release.
- Eliminate new symbol at address 0 on KPTI-enabled kernels
[Orabug: 27364377]
- Boost some test timeouts

- Internal development release.
- New tests and test fixes (Kris Van Hees, Nicolas Droux)
[Orabug: 27194352, 27282243]

- Internal development release.
- Fix rare assertion failures at exit [Orabug: 26848964]

- Release for smoketesters, not GA
- Fix mod() normalization: add test for it (Tomas Jedlicka, Eugene Loh)
[Orabug: 26826564]
- Fix faulty logic in dtrace_modsym_update() adding symbols to wrong modules
(Tomas Jedlicka, Eugene Loh) [Orabug: 26848467]
- ip provider ipv6_tclass and ipv6_flow are not set correctly (Nicolas Droux)
[Orabug: 27193049]
- Translator changes for kernels 4.12 -- 4.14 (Nicolas Droux,
Tomas Jedlicka, Nick Alcock)
- Add tagging capability to the testsuite (Vincent Lim, Eugene Loh)
[Orabug: 26992620]
- Fix kills of hanging dtraces in the testsuite (Eugene Loh, Nick Alcock)
[Orabug: 27051149]
- New tests for the lockstat provider and fixes to jstack and 3-arg
tracemem tests (Eugene Loh, Alan Maguire) [Orabug: 26149894, 27015838]

- Apply correct version of lockstat patch [Orabug: 26149894]

- Add lockstat provider [Orabug: 26149894] (Alan Maguire)
- Add missing obsolete of dtrace-modules-provider-headers (Tomas Jedlicka)
[Orabug: 26883486]
- Add missing testsuite NFS dependency (Tomas Jedlicka) [Orabug: 26860985]

- Internal development release.
- Fix segfault at shutdown time if grabbed processes die at
precisely the wrong time [Orabug: 26528776]
- New llquantize() aggregation, providing log/linear results
(Eugene Loh) [Orabug: 26675201]
- New optional third arg for tracemem(): dynamically-variable size
limit (Eugene Loh) [Orabug: 26675604]
- Fix wrong wrong-number-of-args error messages [Orabug: 26402731]
(Eugene Loh)
- Fix module address range merging (Eugene Loh) [Orabug: 25767469]
- Allow referencing of structure and union members named with
the same name as D keywords, e.g. 'self' [Orabug: 26518086]
- Changes for the move of UAPI headers into dtrace-utils-devel.
(Tomas Jedlicka, Nick Alcock).
- Support CTF in /lib/modules/4.14.35-2047.513.2.2.el7uek.x86_64/kernel/vmlinux.ctfa
archive [Orabug: 25815372]
- Testsuite fixes and new tests for inet_*() and lquantize
(Eugene Loh, Alan Maguire, Nick Alcock)

- Relicense all of userspace, including the testsuite, to UPL.
- Merge NEWS from the modules into NEWS for userspace: there is
only one NEWS now.
- Test fixes (Tomas Jedlicka, Nick Alcock) [Orabug: 26522961]
- make check-quick support, skipping long-running tests

- Internal development release
- Fix name of lowest bucket in dtrace_print_lquantize() (Eugene Loh)
[Orabug: 26261502]
- Fix wrong depth in dtrace_print_ustack() leading to garbage output

Updated Packages

Release/ArchitectureFilenameMD5sumSuperseded By Advisory
Oracle Linux 8 (aarch64) dtrace-2.0.0-1.10.el8.src.rpme47455b238431a36363d5c7968855e13-
Oracle Linux 8 (x86_64) dtrace-2.0.0-1.10.el8.src.rpme47455b238431a36363d5c7968855e13-

This page is generated automatically and has not been checked for errors or omissions. For clarification or corrections please contact the Oracle Linux ULN team