JDK-7140924 : SIGSEGV in compiled code for sun.awt.X11.XDecoratedPeer.updateMinSizeHints
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs23
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic,linux
  • CPU: generic,arm
  • Submitted: 2012-01-30
  • Updated: 2012-03-22
  • Resolved: 2012-02-21
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
7u4Fixed 8Fixed hs23Fixed
Related Reports
Relates :  
Description
Starting JDK 7u4 b07 (HS 23 b10), stress test fails with -server -Xcomp:

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xfffffd7ff8978ae0, pid=12307, tid=189
#
# JRE version: 7.0_04-b09
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.0-b11 compiled mode solaris-amd64 compressed oops)
# Problematic frame:
# J  sun.awt.X11.XDecoratedPeer.updateMinSizeHints()V
#

Current thread (0x00000000016c8000):  JavaThread "Thread-168" [_thread_in_Java, id=189, stack(0xfffffd7fd2dc4000,0xfffffd7fd2ec4000)]

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

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5ed8f599a788
31-01-2012

EVALUATION bcEscapeAnalyzer incorrectly reports that next method returns only nonescaped allocation: public Dimension getTargetMinimumSize() { return (targetMinimumSize == null) ? null : new Dimension(targetMinimumSize); }
30-01-2012

EVALUATION Missed NULL check in generated code from bci 13. It was incorrectly eliminated by EA pointers compare optimization: 7 aload_0 8 invokevirtual 56 <sun/awt/X11/XDecoratedPeer.getTargetMinimumSize()Ljava/awt/Dimension;> 80 bci: 8 VirtualCallData count(0) entries(1) 'sun/awt/X11/XWindowPeer'(1 1.00) 11 astore_1 12 aload_1 13 ifnull 194 128 bci: 13 BranchData taken(1) displacement(784) not taken(0) 16 aload_0 17 invokevirtual 20 <sun/awt/X11/XDecoratedPeer.getRealInsets()Ljava/awt/Insets;> 160 bci: 17 VirtualCallData count(0) entries(0) 20 astore_2 21 aload_1 22 getfield 57 <java/awt/Dimension.width/I> Failed in 0x060 offset: 040 B3: # B45 B4 <- B2 Freq: 0.899982 040 movq RSI, [rsp + #0] # spill nop # 3 bytes pad for loops and calls 047 call,static sun.awt.X11.XWindowPeer::getTargetMinimumSize # sun.awt.X11.XDecoratedPeer::updateMinSizeHints @ bci:8 L[0]=rsp + #0 L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_ # OopMap{[0]=Oop off=76} 04c 04c B4: # B44 B5 <- B3 Freq: 0.899964 # Block is sole successor of call 04c movq RBP, RAX # spill 04f movq RSI, [rsp + #0] # spill 053 call,static sun.awt.X11.XDecoratedPeer::getRealInsets # sun.awt.X11.XDecoratedPeer::updateMinSizeHints @ bci:17 L[0]=rsp + #0 L[1]=RBP L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ L[7]=_ # OopMap{rbp=Oop [0]=Oop off=88} 058 058 B5: # B36 B6 <- B4 Freq: 0.899946 # Block is sole successor of call 058 movl R11, [RAX + #16 (8-bit)] # int ! Field java/awt/Insets.left 05c NullCheck RAX 05c 05c B6: # B30 B7 <- B5 Freq: 0.899945 05c movl R10, [RAX + #24 (8-bit)] # int ! Field java/awt/Insets.right 060 movl R9, [RBP + #12 (8-bit)] # int ! Field java/awt/Dimension.width
30-01-2012

WORK AROUND Use flag -XX:-OptimizePtrCompare
30-01-2012