Skip to content

Releases: DataDog/java-profiler

v_1.52.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 09:35
4e07326

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

Choose a tag to compare

@github-actions github-actions released this 25 Sep 18:32
b161da4

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

Full Changelog: v_1.50.0...v_1.51.0

v_1.50.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 19:19
484f9db

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

Choose a tag to compare

@github-actions github-actions released this 07 Aug 21:13
v_1.49.0
3aa1887

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

Choose a tag to compare

@github-actions github-actions released this 07 Aug 21:21
v_1.48.2
1489d1b

What's Changed

  • [Automated] Bump dev version to 1.48.2 by @kaahos in #715

Full Changelog: v_1.48.1...v_1.48.2

v_1.48.1

Choose a tag to compare

@github-actions github-actions released this 04 Aug 09:05
v_1.48.1
c96ea85

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

Choose a tag to compare

@github-actions github-actions released this 27 Jul 16:25
587a45c

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

Choose a tag to compare

@github-actions github-actions released this 23 Jul 11:33
v_1.47.0
61fcfb3

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

Choose a tag to compare

@github-actions github-actions released this 03 Jul 21:27
v_1.46.0
92427b9

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

  • feat(profiler): wall-clock signal suppression for idle threads by @kaahos in #560

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

Choose a tag to compare

@github-actions github-actions released this 18 Jun 21:09
48d5522

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

Full Changelog: v_1.44.0...v_1.45.0