JDK-6300533 : RI crashes on Windows when executing tests.api.java.awt.Toolkit.CursorTests
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 5.0
  • Priority: P2
  • Status: Closed
  • Resolution: Cannot Reproduce
  • OS: windows_xp
  • CPU: generic
  • Submitted: 2005-07-22
  • Updated: 2011-01-19
  • Resolved: 2006-11-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 Availability Release.

To download the current JDK release, click here.
Other JDK 6
1.4.2_15Fixed 6Resolved
Filed By                 : JCK Team
JDK                        : JDK1.5.0
JCK                        : JCK 6.0 Build B01
Platform[s]            : Windows XP
JCK test owner    : http://javaweb.sfbay/jct/sqe/JCK-tck/usr/owners.jto 
Failing Test [s]     : api/java/awt/Toolkit/CursorTests

Test source location: 
api test source: 

Problem description:
Tests may randomly crash due to memory access violation inside a native method.
It can be reproduced using the Reference Implementation for Windows.
Running the test under Reference Implementation for Windows many times, 
failure rate is about 15-20 crashes per 100 consecutive runs.

How to reproduce: 
Crash takes place not on every run.
Tests should be executed in standalone mode:

cd %JCK_HOME%\classes
%JAVA_HOME%\bin\java.exe javasoft/sqe/tests/api/java/awt/Toolkit/CursorTests -TestURL file://%JCK_HOME%/tests/api/java_awt/Toolkit

Test output: 
RI crashes with post-mortem message like this:
# An unexpected error has been detected by HotSpot Virtual Machine:
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c9010f3, pid=204, tid=2436
# Java VM: Java HotSpot(TM) Client VM (1.5.0-b64 mixed mode)
# Problematic frame:
# C  [ntdll.dll+0x10f3]

---------------  T H R E A D  ---------------

Current thread (0x00a86130):  JavaThread "Finalizer" daemon [_thread_in_native, id=2436]

siginfo: ExceptionCode=0xc0000005, writing address 0x0adc507c

EAX=0x00000000, EBX=0x00000000, ECX=0x0ab8f6a0, EDX=0x0adc5074
ESP=0x0ab8f6b0, EBP=0x0ab8f6e0, ESI=0x0adc5060, EDI=0x0adc5074
EIP=0x7c9010f3, EFLAGS=0x00010246

Top of Stack: (sp=0x0ab8f6b0)
0x0ab8f6b0:   6d147768 0adc5074 0adc5060 00a861ec
0x0ab8f6c0:   6d139159 00a86130 06d507c0 06d507c8
0x0ab8f6d0:   0ab8f6c4 0ab8f808 6d162fe4 00000000
0x0ab8f6e0:   0ab8f70c 00ad826f 00a861ec 0ab8f71c
0x0ab8f6f0:   0ab8f6f0 00000000 0ab8f71c 06d51128
0x0ab8f700:   00000000 06d507c8 0ab8f71c 0ab8f73c
0x0ab8f710:   00ad2923 00000000 00ad6449 02b63b00
0x0ab8f720:   0ab8f720 06d50747 0ab8f744 06d51128 

Instructions: (pc=0x7c9010f3)
0x7c9010e3:   24 00 00 00 00 90 90 90 90 90 8b 54 24 04 33 c0
0x7c9010f3:   ff 4a 08 75 26 89 42 0c f0 ff 4a 04 7d 03 c2 04 

Stack: [0x0ab50000,0x0ab90000),  sp=0x0ab8f6b0,  free space=253k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [ntdll.dll+0x10f3]
j  java.awt.Cursor.finalizeImpl()V+0
j  java.awt.Cursor.finalize()V+7
v  ~StubRoutines::call_stub
V  [jvm.dll+0x8168d]
V  [jvm.dll+0xd4179]
V  [jvm.dll+0x8155e]
V  [jvm.dll+0x86845]
C  [java.dll+0x1fd8]
j  java.lang.ref.Finalizer.runFinalizer()V+38
j  java.lang.ref.Finalizer.access$100(Ljava/lang/ref/Finalizer;)V+1
j  java.lang.ref.Finalizer$FinalizerThread.run()V+11
v  ~StubRoutines::call_stub
V  [jvm.dll+0x8168d]
V  [jvm.dll+0xd4179]
V  [jvm.dll+0x8155e]
V  [jvm.dll+0x812bb]
V  [jvm.dll+0x9bbe9]
V  [jvm.dll+0xfe77f]
V  [jvm.dll+0xfe74d]
C  [MSVCRT.dll+0x2a3b0]
C  [kernel32.dll+0xb50b]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  java.awt.Cursor.finalizeImpl()V+0
j  java.awt.Cursor.finalize()V+7
v  ~StubRoutines::call_stub
j  java.lang.ref.Finalizer.invokeFinalizeMethod(Ljava/lang/Object;)V+0
j  java.lang.ref.Finalizer.runFinalizer()V+38
j  java.lang.ref.Finalizer.access$100(Ljava/lang/ref/Finalizer;)V+1
j  java.lang.ref.Finalizer$FinalizerThread.run()V+11
v  ~StubRoutines::call_stub

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

Java Threads: ( => current thread )
  0x0adb6e90 JavaThread "AWT-Shutdown" [_thread_blocked, id=1172]
  0x0ac95c50 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=1660]
  0x0ad4b0a0 JavaThread "Image Fetcher 0" daemon [_thread_blocked, id=532]
  0x0ad2b7c0 JavaThread "AWT-Windows" daemon [_thread_in_native, id=3700]
  0x00a90cc0 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=4016]
  0x00a8f898 JavaThread "CompilerThread0" daemon [_thread_blocked, id=2556]
  0x00a8ec20 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=1912]
=>0x00a86130 JavaThread "Finalizer" daemon [_thread_in_native, id=2436]
  0x00a84ca0 JavaThread "Reference Handler" daemon [_thread_blocked, id=2520]
  0x00035c38 JavaThread "main" [_thread_blocked, id=3364]

Other Threads:
  0x00a822d0 VMThread [id=2112]
  0x00a91e98 WatcherThread [id=3204]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

 def new generation   total 576K, used 57K [0x02ad0000, 0x02b70000, 0x02fb0000)
  eden space 512K,   6% used [0x02ad0000, 0x02ad8b00, 0x02b50000)
  from space 64K,  35% used [0x02b60000, 0x02b65b50, 0x02b70000)
  to   space 64K,   0% used [0x02b50000, 0x02b50000, 0x02b60000)
 tenured generation   total 1408K, used 366K [0x02fb0000, 0x03110000, 0x06ad0000)
   the space 1408K,  26% used [0x02fb0000, 0x0300b928, 0x0300ba00, 0x03110000)
 compacting perm gen  total 8192K, used 3488K [0x06ad0000, 0x072d0000, 0x0aad0000)
   the space 8192K,  42% used [0x06ad0000, 0x06e38198, 0x06e38200, 0x072d0000)
No shared spaces configured.

Dynamic libraries:
0x00400000 - 0x0040c000 	c:\DevEnvironment\jdk1.5.0\bin\java.exe
0x7c900000 - 0x7c9b0000 	C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c8f4000 	C:\WINDOWS\system32\kernel32.dll
0x77dd0000 - 0x77e6b000 	C:\WINDOWS\system32\ADVAPI32.dll
0x77e70000 - 0x77f01000 	C:\WINDOWS\system32\RPCRT4.dll
0x77c10000 - 0x77c68000 	C:\WINDOWS\system32\MSVCRT.dll
0x6d6b0000 - 0x6d835000 	c:\DevEnvironment\jdk1.5.0\jre\bin\client\jvm.dll
0x77d40000 - 0x77dd0000 	C:\WINDOWS\system32\USER32.dll
0x77f10000 - 0x77f56000 	C:\WINDOWS\system32\GDI32.dll
0x76b40000 - 0x76b6d000 	C:\WINDOWS\system32\WINMM.dll
0x6d2f0000 - 0x6d2f8000 	c:\DevEnvironment\jdk1.5.0\jre\bin\hpi.dll
0x76bf0000 - 0x76bfb000 	C:\WINDOWS\system32\PSAPI.DLL
0x6d680000 - 0x6d68c000 	c:\DevEnvironment\jdk1.5.0\jre\bin\verify.dll
0x6d370000 - 0x6d38d000 	c:\DevEnvironment\jdk1.5.0\jre\bin\java.dll
0x6d6a0000 - 0x6d6af000 	c:\DevEnvironment\jdk1.5.0\jre\bin\zip.dll
0x6d070000 - 0x6d1d6000 	C:\DevEnvironment\jdk1.5.0\jre\bin\awt.dll
0x73000000 - 0x73026000 	C:\WINDOWS\system32\WINSPOOL.DRV
0x76390000 - 0x763ad000 	C:\WINDOWS\system32\IMM32.dll
0x774e0000 - 0x7761d000 	C:\WINDOWS\system32\ole32.dll
0x5ad70000 - 0x5ada8000 	C:\WINDOWS\system32\uxtheme.dll
0x73760000 - 0x737a9000 	C:\WINDOWS\system32\ddraw.dll
0x73bc0000 - 0x73bc6000 	C:\WINDOWS\system32\DCIMAN32.dll
0x73940000 - 0x73a10000 	C:\WINDOWS\system32\D3DIM700.DLL
0x74720000 - 0x7476b000 	C:\WINDOWS\system32\MSCTF.dll
0x6d530000 - 0x6d543000 	C:\DevEnvironment\jdk1.5.0\jre\bin\net.dll
0x71ab0000 - 0x71ac7000 	C:\WINDOWS\system32\WS2_32.dll
0x71aa0000 - 0x71aa8000 	C:\WINDOWS\system32\WS2HELP.dll
0x71a50000 - 0x71a8f000 	C:\WINDOWS\System32\mswsock.dll
0x76f20000 - 0x76f47000 	C:\WINDOWS\system32\DNSAPI.dll
0x76fb0000 - 0x76fb8000 	C:\WINDOWS\System32\winrnr.dll
0x76f60000 - 0x76f8c000 	C:\WINDOWS\system32\WLDAP32.dll
0x76fc0000 - 0x76fc6000 	C:\WINDOWS\system32\rasadhlp.dll
0x662b0000 - 0x66308000 	C:\WINDOWS\system32\hnetcfg.dll
0x71a90000 - 0x71a98000 	C:\WINDOWS\System32\wshtcpip.dll
0x6d2b0000 - 0x6d2ed000 	C:\DevEnvironment\jdk1.5.0\jre\bin\fontmanager.dll

VM Arguments:
java_command: javasoft/sqe/tests/api/java/awt/Toolkit/CursorTests -TestURL file://C:/JCKPlayground/JCK-runtime-60/tests/api/java_awt/Toolkit

Environment Variables:
PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Reflection;C:\UTIL;c:\DevEnvironment\Jad;c:\DevEnvironment\apache-ant\bin;C:\Program Files\cvsnt;
PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 7, GenuineIntel

---------------  S Y S T E M  ---------------

OS: Windows XP Build 2600 Service Pack 2

CPU:total 1 family 15, cmov, cx8, fxsr, mmx, sse, sse2, ht

Memory: 4k page, physical 1048048k(399716k free), swap 1734892k(1007016k free)

vm_info: Java HotSpot(TM) Client VM (1.5.0-b64) for windows-x86, built on Sep 15 2004 03:00:31 by "java_re" with MS VC++ 6.0

EVALUATION the problem is not reproducible in 6.0, so I'm closing this CR "as not reproducible in 6.0"

EVALUATION The fix for finalizers will be in 6.0b51. It can be back-ported.

EVALUATION We are planning to get rid of finilizers in 6.0 so this one will get fixed automatically.