JDK-6893677 : EXCEPTION_ACCESS_VIOLATION in awt.dll (_IntRgbToIntArgbConvert, _IntArgbToIntArgbPreConvert)
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 6u10,6u12,6u20
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2009-10-21
  • Updated: 2010-07-29
  • Resolved: 2009-10-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 6
6u12Resolved
Related Reports
Duplicate :  
Relates :  
Description
The following issues were reported to appear intermittently, but not 
unfrequently on Intel single or dual-core boxes.
The following two hs_err_pid.log reports were provided.

hs_err_pid2028.log
------------------
# An unexpected error has been detected by Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d03920c, pid=2028, tid=2688
#
# Java VM: Java HotSpot(TM) Client VM (11.2-b01 mixed mode windows-x86)
# Problematic frame:
# C  [awt.dll+0x3920c]


Registers:
EAX=0x5b02a3c4, EBX=0x00000100, ECX=0xe2593bc0, EDX=0x00000100
ESP=0x6277f224, EBP=0xffffffff, ESI=0x00000564, EDI=0x00000000
EIP=0x6d03920c, EFLAGS=0x00010286


Stack: [0x62680000,0x62780000],  sp=0x6277f224,  free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [awt.dll+0x3920c] _IntRgbToIntArgbConvert+0x3c

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  sun.awt.windows.WToolkit.eventLoop()V+0
j  sun.awt.windows.WToolkit.run()V+69
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub 


hs_err_pid4844.log
------------------
# An unexpected error has been detected by Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d03481a, pid=4844, tid=5568
#
# Java VM: Java HotSpot(TM) Client VM (11.2-b01 mixed mode windows-x86)
# Problematic frame:
# C  [awt.dll+0x3481a]

Registers:
EAX=0x00000000, EBX=0x00000010, ECX=0x00000000, EDX=0x00000000
ESP=0x627bf5a4, EBP=0x00000000, ESI=0xe22eb840, EDI=0x06d685c4
EIP=0x6d03481a, EFLAGS=0x00010246

Stack: [0x626c0000,0x627c0000],  sp=0x627bf5a4,  free space=1021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [awt.dll+0x3481a] _IntArgbToIntArgbPreConvert+0x8a

[error occurred during error reporting (printing native stack), id 0xc0000005]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  sun.awt.windows.WToolkit.eventLoop()V+0
j  sun.awt.windows.WToolkit.run()V+69
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

Comments
EVALUATION From the attached logs it not clear what exactly application was doing with respect of D3D pipeline at the time of crash. However, it appears to be another manifestation of 6788497. If amount of video memory is not sufficient then d3d pipeline might start behave weird - sometimes we can not detect that memory is not available and fail when we try to use "allocated" memory, somtimes we acutally catch OOM but can not handle it gracefully. I'll close this bug report as duplicate of 6788497. Please feel free to attach additional details to that report. In particular: - what is graphics hardware used (video board, memory on board, drivers version) - run your application with set J2D_TRACE_LEVEL=4 and see if there are any warnings/errors before crash - check how much video memory is available (manufacturer of your board might have tools available, e.g. nvidia perfhud) See also http://java.sun.com/javase/6/webnotes/trouble/TSG-Desktop/html/java2d.html
21-10-2009

WORK AROUND -Dsun.java2d.d3d=false -Dsun.java2d.noddraw=true were reported to avoid the issue.
21-10-2009

EVALUATION According to the description, the crash happens in IntRgbToIntArgbConvert. IntRgbToIntArgbConvert is defined in src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp and owned by Java2D team. Transferring to Java2D team for initial evaluation.
21-10-2009