Skip to content

Fix vtable receiver capture in ASGCT stack walks - #932

Open
kaahos wants to merge 5 commits into
mainfrom
paul.fournillon/fix-vtable-vm-fixture
Open

kaahos wants to merge 5 commits into
mainfrom
paul.fournillon/fix-vtable-vm-fixture

Conversation

@kaahos

@kaahos kaahos commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR do?:

Captures vtable receivers during ASGCT stub recovery without changing platform defaults. Shares capture with the VM walker and verifies the synthetic frame’s receiver class.

Motivation:

macOS defaults to DWARF/ASGCT, which emitted vtable stubs without receiver metadata.

Additional Notes:

Independent agent review found no verified defects. Compact-header decoding is unchanged. Verification gaps below remain open.

How to test the change?:

./.claude/commands/build-and-summarize :ddprof-test:testDebug -Ptests=VtableReceiverFrameTest
  • passed: default/DWARF/VM regression in Debug and Release on macOS arm64, Temurin 26; native Debug/Release suites; formatting and quality checks.
  • blocked: ASan (Gradle daemon disappeared); exact Corretto 26.0.1 validation (runtime unavailable).
  • unrun: full Java Debug suite.

For Datadog employees:

  • If this PR touches code that signs or publishes builds or packages, or handles
    credentials of any kind, I've requested a security review (run the dd:platform-security-review
    skill, or file a request via the PSEC review form).
    bewaire also runs automatically on every PR.
  • This PR doesn't touch any of that.
  • JIRA: PROF-15828

@datadog-datadog-us1-prod

datadog-datadog-us1-prod Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Pipelines

❌ Errors

Your PR has failed checks. Please review the issues below and take necessary action before merging.

🚦 3 Pipeline jobs failed

CI Run | test-matrix / test-linux-musl-amd64 (17-librca, release, regular) — 🔄 Retry may pass, looks flaky

View more details · View in GitHub Actions

DDCI - DataDog/java-profiler | reliability-chaos-amd64: [profiler, tcmalloc, 21.0.3-tem]

View more details · View in DDCI

DataDog/java-profiler | reliability-chaos-amd64: [profiler, tcmalloc, 21.0.3-tem]

View more details · View in GitLab

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 49fbcb5 | Docs | View more details | Give us feedback!

@dd-octo-sts

dd-octo-sts Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

✅ All 40 integration tests passed

📊 Dashboard · 👷 Pipeline · 📦 49fbcb51

@dd-octo-sts

dd-octo-sts Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Reliability & Chaos Results

❌ 1 failure(s) detected Pipeline: https://gitlab.ddbuild.io/DataDog/java-profiler/-/pipelines/152103616

❌ chaos: profiler tcmalloc amd64 21 0 3 temXchaos
ddprof jar unavailable (Maven snapshot download failed)

@kaahos kaahos added test:release Run CI tests with release configuration test:asan Run CI tests with AddressSanitizer configuration test:tsan Run CI tests with ThreadSanitizer configuration test:fuzz test:reliability labels Nov 9, 2026
@dd-octo-sts

dd-octo-sts Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Scan-Build Report

User:runner@runnervmwuk1x
Working Directory:/home/runner/work/java-profiler/java-profiler/ddprof-lib/src/test/make
Command Line:make -j4 all
Clang Version:Ubuntu clang version 21.1.8 (6ubuntu1)
Date:Tue Nov 10 23:35:53 2026

Bug Summary

Bug TypeQuantityDisplay?
All Bugs2
Logic error
Dereference of null pointer1
Unused code
Dead initialization1

Filter Results by File

Reports

Bug Group Bug Type ▾ File Function/Method Line Path Length
Unused codeDead initializationreferenceChains.cppapplyOomRamp4971
Logic errorDereference of null pointerperfEvents_linux.cppunregisterThread72026

@dd-octo-sts

dd-octo-sts Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

CI Test Results

Run: #42924406212 | Commit: 0c61cc9 | Duration: 25m 45s (longest job)

❌ 1 of 108 test jobs failed

Status Overview

JDK glibc-aarch64/asan glibc-aarch64/debug glibc-aarch64/release glibc-aarch64/tsan glibc-amd64/asan glibc-amd64/debug glibc-amd64/release glibc-amd64/tsan musl-aarch64/debug musl-aarch64/release musl-amd64/debug musl-amd64/release
8 - - - - ✅ ✅ ✅ ✅ - - - -
8-ibm - - - - ✅ ✅ ✅ ✅ - - - -
8-j9 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ - - - -
8-librca - - - - - - - - ✅ ✅ ✅ ✅
8-orcl - - - - ✅ ✅ ✅ ✅ - - - -
11 - - - - ✅ ✅ ✅ ✅ - - - -
11-j9 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ - - - -
11-librca - - - - - - - - ✅ ✅ ✅ ✅
17 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ - - - -
17-graal ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ - - - -
17-j9 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ - - - -
17-librca - - - - - - - - ✅ ✅ ✅ ❌
21 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ - - - -
21-graal ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ - - - -
21-librca - - - - - - - - ✅ ✅ ✅ ✅
25 ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ - - - -
25-graal ✅ ✅ ✅ ✅ ✅ ✅ ✅ ✅ - - - -
25-librca - - - - - - - - ✅ ✅ ✅ ✅

Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled

❌ Failing tests

Test Cells Message
VtableReceiverFrameTest.testVtableReceiverFrameInCpuSamplesDwarf___5_ musl-17-librca-release-amd64 Test execution #5 (of up to 5 with at least 1 successes) failed ~> test fails - see cause for details

Retried 1 of 102 cells.

Failed Jobs

  • musl-amd64/release / 17-librca — view logs

Summary: Total: 108 | Passed: 107 | Failed: 1


Updated: 2026-11-11 00:03:16 UTC

@kaahos
kaahos marked this pull request as ready for review November 10, 2026 15:40
@kaahos
kaahos requested a review from a team as a code owner November 10, 2026 15:40
@kaahos

kaahos commented Nov 10, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-10T15:42:03.181581Z 89838e9 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Chef's kiss.

Reviewed commit: 89838e914e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@datadog-datadog-us1-prod datadog-datadog-us1-prod Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bits Code Review: PASS

More details

The completed static review found no actionable defect in the interrupted-frame checks, receiver capture, or recovery-budget handling. Runtime behavior was not independently exercised.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit 89838e9

@kaahos
kaahos force-pushed the paul.fournillon/fix-vtable-vm-fixture branch from f2a50c1 to 49fbcb5 Compare November 10, 2026 23:33

@datadog-datadog-us1-prod datadog-datadog-us1-prod Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bits Code Review: PASS

More details

Receiver capture guards against stale interrupted registers and reserves capacity for recovery or an error frame. Runtime integration and sanitizer behavior were not revalidated.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit 49fbcb5

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:asan Run CI tests with AddressSanitizer configuration test:fuzz test:release Run CI tests with release configuration test:reliability test:tsan Run CI tests with ThreadSanitizer configuration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant