United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 7140924 SIGSEGV in compiled code for sun.awt.X11.XDecoratedPeer.updateMinSizeHints
7140924 : SIGSEGV in compiled code for sun.awt.X11.XDecoratedPeer.updateMinSizeHints

Details
Type:
Bug
Submit Date:
2012-01-30
Status:
Closed
Updated Date:
2012-03-22
Project Name:
JDK
Resolved Date:
2012-02-21
Component:
hotspot
OS:
linux,generic
Sub-Component:
compiler
CPU:
arm,generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
hs23
Fixed Versions:
hs23

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

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
                                     
2012-03-22
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5ed8f599a788
                                     
2012-01-31
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
                                     
2012-01-30
WORK AROUND

Use flag -XX:-OptimizePtrCompare
                                     
2012-01-30
EVALUATION

bcEscapeAnalyzer incorrectly reports that next method returns only nonescaped allocation:

    public Dimension getTargetMinimumSize() {
        return (targetMinimumSize == null) ? null : new Dimension(targetMinimumSize);
    }
                                     
2012-01-30



Hardware and Software, Engineered to Work Together