Releases: DataDog/java-profiler
Releases · DataDog/java-profiler
Release list
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
v_1.44.0
What's Changed
- ci: fix release branch pipelines and blocked org actions by @jbachorik in #548
- ci: replace third-party GH actions with built-in equivalents by @jbachorik in #553
- fix(profiler): close onThreadEnd teardown race by @jbachorik in #552
- fix(tsan): clean TSan gtest suite; fix races and RefCountGuard activation window by @jbachorik in #554
- Fix buffer overrun in livenessTracker.cpp by @zhengyu123 in #555
- fix(ci): exclude publish-benchmark-gh-pages from schedule pipelines by @jbachorik in #557
- fix(liveness): release jweak ref when liveness table overflows or realloc fails by @jbachorik in #556
- fix(tsan): atomic reads in findCallTrace to eliminate data race by @jbachorik in #559
- ci: fix release branch pipelines and surface version bump PR link by @jbachorik in #551
- fix(ci): skip tag/branch creation when MINOR tag already exists by @jbachorik in #561
- fix(ci): force-push bump branch to handle pre-existing remote by @jbachorik in #562
- [Automated] Bump dev version to 1.44.0 by @jbachorik in #563
Full Changelog: v_1.43.0...v_1.44.0