Releases: DataDog/java-profiler
Releases · DataDog/java-profiler
Release list
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
v_1.43.0
What's Changed
- fix: route plugin and build-logic deps through mavenRepositoryProxy by @robayu in #514
- Fix missing OTel thread context initialization by @ivoanjo in #515
- fix(profiler): prevent SIGSEGV in updateThreadName on thread death (PROF-14548) by @jbachorik in #518
- fix: guard ProfiledThread teardown against signal races by @jbachorik in #509
- fix(allocsampler): guard ObjectSampler::recordAllocation against bad signatures (PROF-14551) by @jbachorik in #517
- chore(deps): update github actions non-major dependencies by @dd-octo-sts[bot] in #497
- chore(deps): update gradle non-major dependencies by @dd-octo-sts[bot] in #498
- fix(profiler): make _class_map access signal-safe in walkVM by @jbachorik in #512
- chore(deps): update actions/cache action to v5 by @dd-octo-sts[bot] in #499
- fix(profiler): line-number-table UAF, musl/aarch64 wrapper canary, and SIGVTALRM teardown race by @jbachorik in #510
- test: reduce BoundMethodHandle workload on aarch64+asan by @jbachorik in #533
- Implement option to use JVMTI/JFR stack-walker for CPU- and wall-clock-profiler by @rkennke in #504
- fix(objectSampler): drop Deallocate on GetClassSignature error path by @jbachorik in #535
- fix(profiler): probe JVMTI strings before strncmp in fillJavaMethodInfo by @jbachorik in #537
- fix(profiler): guard JVMTI sample path against null calltrace buffer by @jbachorik in #536
- feat(profiler): async-signal-safety sanitizer by @jbachorik in #540
- refactor(vtable_target): defer receiver resolution to dump time via SafeAccess by @jbachorik in #527
- fix(profiler): lock-free class/endpoint/context maps via StringDictionary by @jbachorik in #524
- ci: replace webfactory/ssh-agent with inline ssh-agent setup by @jbachorik in #546
- ci: open PR for post-release version bump instead of direct push by @jbachorik in #547
New Contributors
Full Changelog: v_1.42.0...v_1.43.0
v_1.42.0
What's Changed
- feat(vt): expose carrier frames and fix truncated traces for virtual threads on JDK 21+ by @jbachorik in #450
- Fix snapshot dump crash on stale jmethodID (PROF-14003) by @jbachorik in #460
- Port native malloc allocation profiling from async-profiler by @jbachorik in #398
- Fix WallClockASGCT::timerLoop skipping every other thread (PROF-14332) by @jbachorik in #493
- Fix IBM J9 crash: replace pthread_cleanup_push with abi::__forced_unwind catch (SCP-1154) by @jbachorik in #492
- Validate signal origin in CPU and WallClock handlers (PROF-14324) by @jbachorik in #494
- feat: nested-scope context save/restore via ScopeStack by @jbachorik in #496
Full Changelog: v_1.41.0...v_1.42.0