Repository navigation
Releases: DataDog/java-profiler
Releases · DataDog/java-profiler
Release list
v_1.52.0
What's Changed
- ci: run benchmarks only for the top of a PR stack by @jbachorik in #822
- feat(nativemem): measure allocator overhead instead of assuming a blanket factor by @rkennke in #759
- walkVM attribution addresses (PROF-15955) + one shared DWARF step (PROF-16059) by @rkennke in #813
- Update README.md for optional -PenableFaultInjection and -PenableSamplerPerf builds by @zhengyu123 in #823
- Emit one addressing convention for every frame by @rkennke in #830
- Hand back raw return addresses from the unwind helpers by @rkennke in #831
- fix: plug remote symbolication enum to JFR by @kaahos in #828
- Improve AArch64 runtime stub unwinding with precomputed per-stub unwind info by @jbachorik in #816
- Compute the attribution pc with integer arithmetic by @rkennke in #835
- Build the gtest helper libraries again by @rkennke in #837
- Reference-chain tracker and leak-signal engine by @jbachorik in #797
- Write saved GOT slots only while their library is loaded by @rkennke in #838
- Fix recurring nightly sanitized failures (UBSan null-pc, fuzz harness compile, jmethodID churn test flake) by @jbachorik in #833
- Fix aarch64 stub unwinding in I2C/C2I adapters; fix StubUnwindCpuTest slowness on debug builds by @rkennke in #842
- Never reclaim dictionary storage after a timed-out drain by @rkennke in #839
- Fix duplicate and biased thread picks in the wall-clock reservoir sampler by @kaahos in #844
- Use a small table in PutWithExistingIdNoInfiniteLoopWhenFull by @rkennke in #847
- Close guard-scan and reused-buffer gaps in dictionary reclamation by @rkennke in #845
- fix: avoid UB left shift of negative ADRP immediate in decodeAdrTarget by @kaahos in #848
- Never free a call-trace table a put() may still hold after a drain timeout by @rkennke in #840
- Fix flaky ASan itable-stub tests and musl apk setup by @jbachorik in #849
- Liveness epoch/urgency fixes, deferred chain invalidation, and debug JNI test seams by @jbachorik in #798
- Keep one id per key across StringDictionary::rotate() by @rkennke in #857
- Fix live trace preservation deduplication by trace ID (PROF-16138) by @rkennke in #860
- Test preserved traces across several dumps (PROF-16144) by @rkennke in #861
- Fix native socket hook timestamp sequencing (PROF-16151) by @rkennke in #862
- Sort PerfEvents thread ids with a valid qsort comparator by @kaahos in #863
- Stop build-and-summarize from leaking a tail process per run by @rkennke in #865
- Let container tests clone the repo under rootful Docker by @rkennke in #869
- Reference chains: recycled leak-tag identity and Java integration tests by @jbachorik in #800
- Reference-chain test-stack updates, seam fixes, and repro/sweep tooling by @jbachorik in #801
- Reference-chains design and architecture docs by @jbachorik in #802
- Add fjmethodid=lazy: profile HotSpot without jmethodIDs by @rkennke in #868
- Fix broken async-profiler 2.8.3 release link in README by @jbachorik in #881
- Remove unreachable dead code in t07_body musl variant (issue #592) by @jbachorik in #882
- Require trace IDs to increase in creation order during calibration by @rkennke in #885
- Make TEST_LOG async-signal-safe by @rkennke in #883
- ci: upload test reports when a watchdog-dumped job times out by @rkennke in #880
- ci: list a run's jobs 50 per page in the test summary by @rkennke in #886
- Fix continuation metadata lookup and frame alignment by @kaahos in #870
- Route GitLab CI Java dependency downloads through Depot by @zihaoyu in #866
- Quarantine flaky reference-chain slow e2e tests (PROF-16305) by @jbachorik in #888
- Fix Kotlin DSL plugin resolution with restored Gradle caches by @zihaoyu in #891
- Restructure AGENTS.md into a thin index and correct the doc set against the code by @jbachorik in #892
- Revert "Fix Kotlin DSL plugin resolution with restored Gradle caches" by @zihaoyu in #894
- Revert "Route GitLab CI Java dependency downloads through Depot" by @zihaoyu in #896
New Contributors
Full Changelog: v_1.51.0...v_1.52.0
v_1.51.0
What's Changed
- fix: omit source_sha in retry mode by @jbachorik in #764
- Fix release.sh script by @zhengyu123 in #776
- fix(nativemem): refresh NM_NATIVE_SYMBOLS where the tables change by @rkennke in #753
- feat(nativemem): emit post-serialization counters so flush cost is visible by @rkennke in #754
- refactor(profiling): Signal handler boilerplate by @yaronguro-datadog in #756
- Possible out-of-bounds Context read by @zhengyu123 in #774
- refactor(sampling): replace std::random_device with the existing xorshift64 by @rkennke in #794
- ci: move the shipped binaries to AlmaLinux 8, get the test images off EOL Debian by @rkennke in #790
- Avoid UBSan wrap in ElfSection vaddr arithmetic by @jbachorik in #795
- Model crashNow's intentional crash as a trap under scan-build by @jbachorik in #804
- ci: count integration configurations with no result as failures by @rkennke in #792
- ci: quarantine flaky tests against a ticket instead of retrying past them by @rkennke in #777
- JFR event types and emission for reference chains by @jbachorik in #796
- Fix: PROF-15934 - native stack walker return-address attribution by @rkennke in #786
- Restore ucontext on faulted paths by @zhengyu123 in #781
- Add performance counters/metrics for samplers by @zhengyu123 in #811
- Fix SanityCheckTest OOM on JDK 8 and a false crash in flake_report by @rkennke in #815
- ci: restore EL7 stresstest coverage, add nightly EL7 functional tests by @rkennke in #805
- ci: wire the EL7 functional job into #777's quarantine machinery by @rkennke in #810
- Purge unsupported platforms by @zhengyu123 in #818
- fix(test): stop -O3 tail-calling away the return-address trampolines by @rkennke in #819
- ci: run the C++ unit tests in the release configuration by @rkennke in #821
- fix: address argument parsing silent drops by @kaahos in #817
- Possible UAF of otel_thread_ctx_v1 by @zhengyu123 in #820
New Contributors
- @yaronguro-datadog made their first contribution in #756
Full Changelog: v_1.50.0...v_1.51.0
v_1.50.0
What's Changed
- Remove dead Lookup::_class_cache by @rkennke in #723
- Remove duplicated SpinLock Exclusive/Shared Locker by @zhengyu123 in #731
- Add sanity checks for profiler by @jbachorik in #48
- Return JMETHODID_NOT_WALKABLE instead of nullptr for unpopulated jmethodID slots by @jbachorik in #733
- feat(nativemem): instrument remaining allocation sites by @rkennke in #724
- Make ProfiledThread's UnwindFailures field debug only by @zhengyu123 in #734
- Fix entry resolution for main(String[]) method by @zhengyu123 in #740
- Improve detecting subclass of Thread by @zhengyu123 in #741
- Restore priming and fix races on acquire/release ProfiledThread by @zhengyu123 in #713
- Serialize stale jmethodID frames as instead of jvmtiError by @jbachorik in #744
- Fix CollectedHeapWrapper stale layout on JDK 25+ by @jbachorik in #746
- Protect HotspotSupport::resolve() with longjmp by @zhengyu123 in #743
- Adopt JmpCtxScope for setting stack walk siglongjmp protection by @zhengyu123 in #758
- Protect Lookup::resolveMethod() with siglongjmp by @zhengyu123 in #752
- fix(nativemem): count NM_CALLTRACE residency, not reserved chunk capacity by @rkennke in #757
Full Changelog: v_1.49.0...v_1.50.0
v_1.49.0
What's Changed
- [Automated] Bump dev version to 1.49.0 by @dd-octo-sts[bot] in #690
- Missing libgcc_s.so.1 on the host should not result in crash by @zhengyu123 in #689
- fix(reliability): stop the reliability CI jobs from failing on every run by @jbachorik in #697
- Avoid retaining invalid VM method pointers by @jbachorik in #699
- Remove legacy DirectByteBuffer-based OTEP context storage (Phase 3) by @rkennke in #696
- chore(release): fix release bump auto-merge by @kaahos in #698
- fix: restore trivial approval action pins by @kaahos in #710
- [fault-injection] Profiler::recordSample() stack walk is unprotected by @zhengyu123 in #687
- Carve slow/e2e tests into separate testSlow tasks by @jbachorik in #700
- fix(ci): bump IBM Java 8 JRE URL to 8.0.8.70 by @jbachorik in #717
- fix: skip jobs needing build/deploy-artifact on release/* branches by @jbachorik in #716
- Add disabled regression test for unprimed native threads by @jbachorik in #712
- fix(ci): stop JAVA_TOOL_OPTIONS from silently killing integration tests by @jbachorik in #718
- Fix memory leak in JfrMetadata::reset() by @jbachorik in #694
- Guard Recording::writeElement against SIGSEGV on a corrupted metadata tree by @jbachorik in #692
- Replace JMC's JFR loader with a lightweight, streaming jafar-backed API by @jbachorik in #719
- fix: don't disable profiler on Alpine/musl over missing libgcc_s.so.1 by @jbachorik in #720
- Never patch the profiler's own import table by @hisener in #721
- Add prepare-patch.sh to backport pending PRs before a patch release by @jbachorik in #722
New Contributors
Full Changelog: v_1.48.0...v_1.49.0
v_1.48.2
What's Changed
Full Changelog: v_1.48.1...v_1.48.2
v_1.48.1
What's Changed
- chore(release): backport release automation to 1.48 by @kaahos in #709
- fix: backport libgcc and invalid method pointer fixes to 1.48 by @kaahos in #711
Full Changelog: v_1.48.0...v_1.48.1
v_1.48.0
What's Changed
- [Automated] Bump dev version to 1.48.0 by @dd-octo-sts[bot] in #684
- fix(codecache): make memoryUsage() accurate and live by @rkennke in #677
- chore: update token for version bump auto-merge by @kaahos in #685
- feat(profiler): native malloc/socket stack capture with profiler-hook frame skipping by @jbachorik in #648
- fix(codecache): report the real runtime-stubs cache size by @rkennke in #681
- feat(nativemem): categorized native-memory accounting â first cut by @rkennke in #669
- [fault-injection] Startup should setup signal handlers before initializing VMStructs and protect VMFlag::name() call by @zhengyu123 in #674
- Use sigsetjmp/siglongjmp instead of setjmp/longjmp by @zhengyu123 in #686
Full Changelog: v_1.47.0...v_1.48.0
v_1.47.0
What's Changed
- Use ThreadLocal to setup protection longjmp buffer and fix jmp_buf chaining by @zhengyu123 in #615
- ci: fix codeql-action version mismatch between init and analyze by @rkennke in #638
- fix(build): link vmStructs inline definitions in assertion-enabled builds by @rkennke in #641
- ci: raise ASan test JVM heap to fix flaky nightly OOMs by @jbachorik in #640
- build-logic: link sanitizer runtime for the fuzzer shared lib by @rkennke in #646
- feat(context): all-native OTEL context write API â Phase 1 (PROF-15271) by @rkennke in #631
- test: coarsen ASan sampling rate/workload to stop nightly heap OOMs by @jbachorik in #653
- test: add fuzzer for thread local by @zhengyu123 in #645
- feat: add matrix tests to containers by @kaahos in #637
- Bound class-map growth to fix reliability-chaos OOMs by @jbachorik in #654
- (fix): gate FrameType::isRawPointer on HotSpot by @jbachorik in #658
- Profiler's fuzz tests store corpus files under wrong directories by @zhengyu123 in #656
- fix(profiler): guard line-number-table copy against stale jmethodID by @jbachorik in #647
- Optimize SafeAccess:safeCopy() implementation in assembly by @zhengyu123 in #660
- fix: prevent duplicate trace_id after CallTraceHashTable expansion by @jbachorik in #659
- Gate FrameType::isRawPointer on ENCODED_MASK and HotSpot by @jbachorik in #667
- chaos: vthread-context-cascade antagonist + glibc heap-corruption defaults by @jbachorik in #642
- Share object across fuzz targets & increase build timeout by @edznux-dd in #662
- Adopt ThreadLocal to store ProfiledThread by @zhengyu123 in #639
- Add compile-time fault-injection infrastructure for stack-walker recovery paths by @zhengyu123 in #661
- Fix native OOM from unbounded CallTraceHashTable expansion by @jbachorik in #670
- chore(ci): pin benchmarking base image to :newest tag by @faydef in #679
- chore(ci): fix ci images tags by @kaahos in #682
- chore: address release script by @kaahos in #683
New Contributors
Full Changelog: v_1.46.0...v_1.47.0
v_1.46.0
What's Changed
Fixes
- An alternative TLS implementation to fix a crash on musl/aarch64 by @zhengyu123 in #600
- Don't preload jmethodIDs when cstack=vm with hotspot JVM by @zhengyu123 in #549
- fix(context): scope OTEL ThreadContext storage to the carrier thread (PROF-15271) by @rkennke in #625
- [PROF-15201] fix(profiler): close two TOCTOU races between SIGPROF handler and JFR lifecycle by @r1viollet in #614
Features
Tests
- test: thread lifecycle à profiler-state coverage by @jbachorik in #624
- fix(test): reduce ASAN wall-clock rate in BoundMethodHandleProfilerTest to avoid OOM by @rkennke in #630
- fix(test): forkEvery for asan Test task to bound cumulative heap growth by @rkennke in #632
Full Changelog: v_1.45.0...v_1.46.0
v_1.45.0
What's Changed
- Fix duplicated cookies by @zhengyu123 in #564
- fix(wallclock): add signal-origin guard to WallClockJvmti by @jbachorik in #569
- fix: prevent overflow and misaligned read in build-id parsing by @edznux-dd in #567
- fix: bound DWARF .eh_frame_hdr parsing to the section by @edznux-dd in #571
- fix: bounds-check ELF section and symbol-table parsing by @edznux-dd in #568
- fix(spinlock): bound OptionalSharedLockGuard spin in signal handler paths by @jbachorik in #572
- Native malloc fixes and cleanup by @jbachorik in #550
- feat(chaos): production-pattern antagonists + Java-25 thread-churn crash simulation by @jbachorik in #558
- Refactor argument matching with case insensitive string comparison by @zhengyu123 in #580
- fix(calltrace): fix three SIGSEGV-inducing defects in clearTableOnly/collect (PROF-14889) by @jbachorik in #585
- feat(fuzz): add GitLab fuzzing infra setup by @edznux-dd in #587
- feat: native socket I/O tracking via PLT hooks (PROF-10637) by @jbachorik in #488
- fix: switch container runtime to podman by @kaahos in #588
- fix(tsan): suppress false-positive race from VA reuse in LinearAllocator by @jbachorik in #593
- feat(otep) Publish thread context attribute keys at process start by @ivoanjo in #576
- Fix crash at thread exit by @zhengyu123 in #591
- feat(sframe): complete SFrame V2 parser â replace stub with full implementation by @jbachorik in #471
- fix(profiler): name native threads periodically (PROF-15139) by @jbachorik in #601
- fix(jfr): prevent duplicate method-pool ids (PROF-15130) by @jbachorik in #602
- fix(chaos): rate-limit tight-loop antagonists to prevent long-run OOM by @jbachorik in #604
- feat(otep): add batch reapply-by-id-and-bytes context API by @jbachorik in #598
- Potentially infinite loop and store trace in unowned slot in CallTraceHashTable::putWithExistingId() by @zhengyu123 in #578
- fix(jfr): skip emitting empty constant pools by @jbachorik in #603
New Contributors
- @edznux-dd made their first contribution in #567
- @kaahos made their first contribution in #588
Full Changelog: v_1.44.0...v_1.45.0