JDK-8265148 : StackWatermarkSet being updated during AsyncGetCallTrace
  • Type: Bug
  • Component: hotspot
  • Sub-Component: svc
  • Affected Version: 16
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2021-04-13
  • Updated: 2021-06-07
  • Resolved: 2021-06-01
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 17
17 b25Fixed
Related Reports
Relates :  
Description
It looks like the fix for JDK-8253180 missed a couple RegisterMap constructors in forte.cpp.  Running sunflow with the async profiler from https://github.com/jvm-profiling-tools/async-profiler shows this.

V  [libjvm.dylib+0x11730ed]  VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x6dd
V  [libjvm.dylib+0x117370b]  VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x3b
V  [libjvm.dylib+0x6177ef]  report_vm_error(char const*, int, char const*, char const*, ...)+0x13f
V  [libjvm.dylib+0xfcc0a0]  verify_processing_context()+0xf0
V  [libjvm.dylib+0xfcc4b6]  StackWatermarkSet::on_iteration(JavaThread*, frame const&)+0x26
V  [libjvm.dylib+0x7010da]  frame::sender(RegisterMap*) const+0x2a
V  [libjvm.dylib+0x6f9574]  forte_fill_call_trace_given_top(JavaThread*, ASGCT_CallTrace*, int, frame)+0x194
V  [libjvm.dylib+0x6f93b9]  AsyncGetCallTrace+0x249
C  [libasyncProfiler.so+0x116c7]  Profiler::getJavaTraceAsync(void*, ASGCT_CallFrame*, int)+0xc7
C  [libasyncProfiler.so+0x12379]  Profiler::recordSample(void*, unsigned long long, int, _jmethodID*, ThreadState)+0x379
C  [libasyncProfiler.so+0x1923e]  WallClock::signalHandler(int, __siginfo*, void*)+0x9e
C  [libsystem_platform.dylib+0x3d7d]  _sigtramp+0x1d

cc [~eosterlund]
Comments
Changeset: 2b338355 Author: Leonid Mesnik <lmesnik@openjdk.org> Date: 2021-06-01 18:06:19 +0000 URL: https://git.openjdk.java.net/jdk/commit/2b3383557f71ede15d00bd87742a277c0c764d20
01-06-2021

Moving from hotspot/jvmti -> hotspot/svc. AsyncGetCallTrace() is supported by the Serviceability team and is not a JVM/TI API.
13-04-2021