Commit 6070109
committed
fix(walkvm): detect Path A via cont_entry_return_pc exact-PC match
- Replace heuristic type_size()==0 && hasActiveContinuation() check with
isContEntryReturnPc(pc) exact-PC match before nmethod dispatch
- Add isContEntryReturnPc() to VMStructs mirroring isContReturnBarrier()
- Remove hasActiveContinuation() from VMThread (no longer needed)
- Update enterSpecial comment: RuntimeBlob on JDK 21-26, nmethod on JDK 27+
- Add assertFalse(vt.isAlive()) timeout guard to blocking VT test
The old condition fired only when ContinuationEntry was absent from vmStructs
(musl/minimal JDK 21-26 builds). On JDK 21-26 glibc, ContinuationEntry IS in
vmStructs so type_size()!=0, but enterSpecial is still a RuntimeBlob whose
findNMethod() returns NULL. Path A was silently skipped, showing truncated
traces instead of carrier frames.
This commit made by [/dd:git:commit:atomic](https://github.com/DataDog/claude-marketplace/tree/main/dd/commands/git/commit/atomic.md)1 parent 8c331b3 commit 6070109
File tree
4 files changed
+32
-44
lines changed- ddprof-lib/src/main/cpp
- hotspot
- ddprof-test/src/test/java/com/datadoghq/profiler/wallclock
4 files changed
+32
-44
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
475 | 475 | | |
476 | 476 | | |
477 | 477 | | |
478 | | - | |
479 | | - | |
480 | | - | |
481 | | - | |
482 | | - | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
483 | 482 | | |
484 | 483 | | |
485 | 484 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
475 | 475 | | |
476 | 476 | | |
477 | 477 | | |
478 | | - | |
479 | | - | |
480 | | - | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
481 | 483 | | |
482 | 484 | | |
483 | 485 | | |
| |||
860 | 862 | | |
861 | 863 | | |
862 | 864 | | |
863 | | - | |
864 | | - | |
865 | | - | |
866 | | - | |
867 | | - | |
868 | | - | |
869 | | - | |
870 | | - | |
871 | 865 | | |
872 | 866 | | |
873 | 867 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
381 | 381 | | |
382 | 382 | | |
383 | 383 | | |
384 | | - | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
385 | 388 | | |
386 | 389 | | |
387 | 390 | | |
| |||
390 | 393 | | |
391 | 394 | | |
392 | 395 | | |
393 | | - | |
394 | | - | |
395 | | - | |
396 | | - | |
397 | | - | |
398 | | - | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
399 | 401 | | |
400 | 402 | | |
401 | 403 | | |
| |||
453 | 455 | | |
454 | 456 | | |
455 | 457 | | |
456 | | - | |
457 | | - | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
458 | 465 | | |
459 | 466 | | |
460 | 467 | | |
461 | 468 | | |
462 | 469 | | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
463 | 475 | | |
464 | 476 | | |
465 | 477 | | |
466 | | - | |
467 | | - | |
468 | | - | |
469 | | - | |
470 | | - | |
471 | | - | |
472 | | - | |
473 | | - | |
474 | | - | |
475 | | - | |
476 | | - | |
477 | | - | |
478 | | - | |
479 | | - | |
480 | | - | |
481 | | - | |
482 | | - | |
483 | | - | |
484 | | - | |
485 | 478 | | |
486 | 479 | | |
487 | 480 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
170 | 171 | | |
171 | 172 | | |
172 | 173 | | |
| 174 | + | |
173 | 175 | | |
174 | 176 | | |
175 | 177 | | |
| |||
0 commit comments