JDK-6980281 : SWAT: SwingSet2 got core dumped in Solaris-AMD64 using b107 swat build
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 7
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic,solaris,solaris_10
  • CPU: generic,x86
  • Submitted: 2010-08-26
  • Updated: 2012-02-02
  • Resolved: 2011-03-07
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 Availabitlity Release.

To download the current JDK release, click here.
7 b123Fixed
Related Reports
Duplicate :  
Duplicate :  
Java version: 1.7.0-ea-b107
Platform: Solaris-amd64 Solaris 10 5/09 s10x_u7wos_08 X86

SwingSet2 is crashed by running it in Solaris_amd64 machine using jdk1.7.0-b107 swat build. It is running fine with in solaris-i586, solaris-sparc and windows.
Please see below core dump summary and a core dump file as attached.

Test log can be found:

It can be reproducible by running it java -jar with following flags:
-d64 -server -Xmixed; or -d64 -client -Xint; -d64 -server -Xint; -d64 -client -Xmixed

Summary of the core dump file:
# A fatal error has been detected by the Java Runtime Environment:
#  SIGSEGV (0xb) at pc=0x000000000000000e, pid=3023, tid=24
# JRE version: 7.0
# Java VM: Java HotSpot(TM) 64-Bit Server VM (19.0-b05 mixed mode solaris-amd64 compressed oops)
# Problematic frame:
# C  0x000000000000000e
---------------  T H R E A D  ---------------

Current thread (0x0000000000eea000):  JavaThread "Thread-2" [_thread_in_native, id=24, stack(0xfffffd7fd46fe000,0xfffffd7fd47fe000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x000000000000000e;; 

RAX=0x000000000000000e, RBX=0x0000000000cb8000, RCX=0x0000000000000005, RDX=0x00000000010288ed
RSP=0xfffffd7fd47fd380, RBP=0x0000000000000007, RSI=0x0000000000000006, RDI=0x000000000000000e
R8=0x0000000000000000, R9=0x0000000000000012, R10=0xfffffd7fd493d880, R11=0x0000000000000007
R12=0x0000000001028b38, R13=0x0000000000b3c880, R14=0x0000000000ead330, R15=0x0000000000000000
RIP=0x000000000000000e, RFLAGS=0x0000000000010282

Top of Stack: (sp=0xfffffd7fd47fd380)
0xfffffd7fd47fd380:   fffffd7fd47fd3a0 0000000000000001
0xfffffd7fd47fd390:   0000000000000020 0000000000cb8000
0xfffffd7fd47fd3a0:   fffffd7fd47fd400 fffffd7fd49413ca
0xfffffd7fd47fd3b0:   0000000000f50b78 0000000001028b38
0xfffffd7fd47fd3c0:   0000000000a44f28 0000000001028a08
0xfffffd7fd47fd3d0:   fffffd7fd47fd4a8 0000000000cb8000
0xfffffd7fd47fd3e0:   0000000000000001 0000000000000020
0xfffffd7fd47fd3f0:   0000000000eea1c8 fffffd7fd47fd518
0xfffffd7fd47fd400:   fffffd7fd47fd460 fffffd7fd493ac10
0xfffffd7fd47fd410:   fffffd7fd47fd4c0 0000000000b4f2e8
0xfffffd7fd47fd420:   0000000000ead330 00000000d47fd428
0xfffffd7fd47fd430:   0000000000000000 0000000000eea000
0xfffffd7fd47fd440:   fffffd7fd47fd520 fffffd7fd70cb6e0
0xfffffd7fd47fd450:   fffffd7fd5e0f000 fffffd7fd70cb6e8
0xfffffd7fd47fd460:   fffffd7fd47fd4e0 fffffd7ffac10e48
0xfffffd7fd47fd470:   fffffd7ffac0585a 0000000000000000
0xfffffd7fd47fd480:   fffffd7ffac0df58 0000000000000003
0xfffffd7fd47fd490:   0000000000000002 0000000000eea000
0xfffffd7fd47fd4a0:   fffffd7fd47fd4a0 0000000000000000
0xfffffd7fd47fd4b0:   fffffd7fd47fd520 fffffd7fd70cc160
0xfffffd7fd47fd4c0:   0000000000000000 fffffd7fd70cb6e8
0xfffffd7fd47fd4d0:   0000000000000000 fffffd7fd47fd500
0xfffffd7fd47fd4e0:   fffffd7fd47fd568 fffffd7ffac0585a
0xfffffd7fd47fd4f0:   0000000000000000 fffffd7ffac0df58
0xfffffd7fd47fd500:   0000000000000000 0000000000000020
0xfffffd7fd47fd510:   0000000000000001 fffffd7ff2d24aa8
0xfffffd7fd47fd520:   fffffd7ff2d23900 fffffd7fd47fd528
0xfffffd7fd47fd530:   fffffd7fd70cb536 fffffd7fd47fd598
0xfffffd7fd47fd540:   fffffd7fd70cc160 0000000000000000
0xfffffd7fd47fd550:   fffffd7fd70cb548 fffffd7fd47fd500
0xfffffd7fd47fd560:   fffffd7fd47fd578 fffffd7fd47fd5f0
0xfffffd7fd47fd570:   fffffd7ffac0585a 0000000000000000 

Instructions: (pc=0x000000000000000e)
Stack: [0xfffffd7fd46fe000,0xfffffd7fd47fe000],  sp=0xfffffd7fd47fd380,  free space=3fc0000000000000046k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  0x000000000000000e

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  sun.dc.pr.PathFiller.writeAlpha8([BIII)V+0
j  sun.dc.pr.PathFiller.writeAlpha([BIII)V+6
j  sun.dc.pr.Rasterizer.getAlpha([BII)V+15
j  sun.java2d.pipe.AAShapePipe.renderPath(Lsun/java2d/SunGraphics2D;Ljava/awt/Shape;Ljava/awt/BasicStroke;)V+308
j  sun.java2d.pipe.AAShapePipe.fill(Lsun/java2d/SunGraphics2D;Ljava/awt/Shape;)V+4
j  sun.java2d.pipe.ValidatePipe.fill(Lsun/java2d/SunGraphics2D;Ljava/awt/Shape;)V+14
j  sun.java2d.SunGraphics2D.fill(Ljava/awt/Shape;)V+6
j  BezierAnimationPanel.run()V+763
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
=>0x0000000000eea000 JavaThread "Thread-2" [_thread_in_native, id=24, stack(0xfffffd7fd46fe000,0xfffffd7fd47fe000)]
  0x0000000001442000 JavaThread "SwingWorker-pool-1-thread-1" daemon [_thread_blocked, id=22, stack(0xfffffd7fd43df000,0xfffffd7fd44df000)]
  0x0000000000c42800 JavaThread "TimerQueue" daemon [_thread_blocked, id=19, stack(0xfffffd7fd47ff000,0xfffffd7fd48ff000)]
  0x0000000000a7b800 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=18, stack(0xfffffd7fd4a8c000,0xfffffd7fd4b8c000)]
  0x0000000000c60000 JavaThread "AWT-Shutdown" [_thread_blocked, id=17, stack(0xfffffd7fd4b8d000,0xfffffd7fd4c8d000)]
  0x0000000000969000 JavaThread "AWT-XAWT" daemon [_thread_in_native, id=14, stack(0xfffffd7fd4c8e000,0xfffffd7fd4d8e000)]
  0x000000000094e000 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=13, stack(0xfffffd7fd4d8f000,0xfffffd7fd4e8f000)]
  0x000000000083c800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=11, stack(0xfffffd7fd5317000,0xfffffd7fd5417000)]
  0x0000000000838000 JavaThread "CompilerThread1" daemon [_thread_blocked, id=10, stack(0xfffffd7fd5418000,0xfffffd7fd5518000)]
  0x0000000000835800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=9, stack(0xfffffd7fd5519000,0xfffffd7fd5619000)]
  0x0000000000832000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=8, stack(0xfffffd7fd561a000,0xfffffd7fd571a000)]
  0x0000000000813000 JavaThread "Finalizer" daemon [_thread_blocked, id=7, stack(0xfffffd7fd571b000,0xfffffd7fd581b000)]
  0x000000000080c000 JavaThread "Reference Handler" daemon [_thread_blocked, id=6, stack(0xfffffd7fd581c000,0xfffffd7fd591c000)]
  0x000000000041b800 JavaThread "main" [_thread_blocked, id=2, stack(0xfffffd7ffde0f000,0xfffffd7ffdf0f000)]

Other Threads:
  0x0000000000808000 VMThread [stack: 0xfffffd7fd591d000,0xfffffd7fd5a1d000] [id=5]
  0x000000000084f000 WatcherThread [stack: 0xfffffd7fd5216000,0xfffffd7fd5316000] [id=12]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

 PSYoungGen      total 166976K, used 47033K [0xfffffd7ff0210000, 0xfffffd7ffaa10000, 0xfffffd7ffaa10000)
  eden space 162048K, 28% used [0xfffffd7ff0210000,0xfffffd7ff2f9d980,0xfffffd7ffa050000)
  from space 4928K, 7% used [0xfffffd7ffa540000,0xfffffd7ffa5a0c50,0xfffffd7ffaa10000)
  to   space 4992K, 0% used [0xfffffd7ffa050000,0xfffffd7ffa050000,0xfffffd7ffa530000)
 PSOldGen        total 32768K, used 18752K [0xfffffd7fdb210000, 0xfffffd7fdd210000, 0xfffffd7ff0210000)
  object space 32768K, 57% used [0xfffffd7fdb210000,0xfffffd7fdc460280,0xfffffd7fdd210000)
 PSPermGen       total 37248K, used 19204K [0xfffffd7fd5e10000, 0xfffffd7fd8270000, 0xfffffd7fdb210000)
  object space 37248K, 51% used [0xfffffd7fd5e10000,0xfffffd7fd70d1318,0xfffffd7fd8270000)

EVALUATION http://hg.openjdk.java.net/jdk7/build/jdk/rev/15e3f6f4a433

SUGGESTED FIX http://sa.sfbay.sun.com/projects/java2d_data/7/6980281

EVALUATION This crash happens in optimized code which is produced by ss12u1 compiler. Note that same problem for ss12 was workarounded by disabling optimization if compiler version is greater than 5.8. However, version check, introduced in fix for 6729772, does not work correctly for ss12u1 (version 5.10). This fix just modifies the version check to use major and minor compiler versions to make a conclusion whether optimization disabling is required.

EVALUATION There are two similar CRs in jdk7 EC list: 6980281 and 6984956. They report a crash in ductus engine on solaris-x64 (64bit mode only). I have reproduced this problem, and found that this crash is likely caused by a problem in optimized code, generated by SS12u1 compiler. It can indirectly confirmed by following facts: * problem is not reproducible if compiler from SS12 is used. * problem is not reproducible on debug and fastdebug builds even if compiler from SS12u1 is used. * problem disappears if debug printing is added to ductus code. However, our promoted builds are created by using SS12u1 (at least, same testcase causes a crash in b115 ), so we need to workaround this problem on jdk side.

EVALUATION b107 was accidently built with the wrong compilers on Solaris (SS12u1), they are rebuilding b107, this should be tried again after RE re-builds b107 with SS12.

EVALUATION The stack trace suggests the problem on the 2D side sun.java2d.pipe.AAShapePipe.renderPath(Lsun/java2d/SunGraphics2D;Ljava/awt/Shape;Ljava/awt/BasicStroke;)V+308