JDK-7150051 : incorrect oopmap in critical native
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs23
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2012-03-01
  • Updated: 2013-06-26
  • Resolved: 2012-03-24
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 7 JDK 8 Other
7u4 b16Fixed 8Fixed hs23Fixed
Related Reports
Relates :  
Relates :  
Description
I missed this issue in 7145024.


sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java is crashing in JPRT. The error log is typically a crash in GC walking a thread stack when another thread is in com.oracle.security.ucrypto.NativeDigest.nativeUpdate.

Comments
EVALUATION http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/031df0387c09
22-03-2012

EVALUATION http://hg.openjdk.java.net/hsx/hsx23/hotspot/rev/34a4f7687460
08-03-2012

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/031df0387c09
02-03-2012

EVALUATION The slot if being incremented before it's used to generate the oopmap entry so it's off by one. diff -r 2ee7dcc77c63 src/cpu/x86/vm/sharedRuntime_x86_64.cpp --- a/src/cpu/x86/vm/sharedRuntime_x86_64.cpp +++ b/src/cpu/x86/vm/sharedRuntime_x86_64.cpp @@ -1197,7 +1197,6 @@ if (in_regs[i].first()->is_Register() && (in_sig_bt[i] == T_LONG || in_sig_bt[i] == T_ARRAY)) { int offset = slot * VMRegImpl::stack_slot_size; - slot += VMRegImpl::slots_per_word; if (map != NULL) { __ movq(Address(rsp, offset), in_regs[i].first()->as_Register()); if (in_sig_bt[i] == T_ARRAY) { @@ -1206,6 +1205,7 @@ } else { __ movq(in_regs[i].first()->as_Register(), Address(rsp, offset)); } + slot += VMRegImpl::slots_per_word; } } // Save or restore single word registers
01-03-2012