JavaFX EXCEPTION_ACCESS_VIOLATION

access-violation, directx-11, java, javafx, jvm

Solution

The crash has happened inside `C:\Windows\system32\igdumdim64.dll` at offset `0xe5fe9`. This library is a part of Intel HD Graphics Driver.

Here is a quick tip how to find this from the crash log.

# Problematic frame:
# C  0x0000000000000000

Zero instruction pointer means there was an indirect call, and the target address happened to be `NULL`. The return address for this call is likely to be on the top of stack.

Top of Stack: (sp=0x000000000ef4d398)
0x000000000ef4d398:   00007ffb308b5fe9 000000000e979800

`00007ffb308b5fe9` is the saved return address. Let's find the range it belongs to.

Dynamic libraries:
...
0x00007ffb307d0000 - 0x00007ffb31019000      C:\Windows\system32\igdumdim64.dll

Find the offset in the library by subtracting the base address: 0x00007ffb308b5fe9 - 0x00007ffb307d0000 = 0xe5fe9

Next, having the dll in hand, we can disassemble it and figure out the exact function at the given offset.

P.S. There is also a Windows-specific Java flag `-XX:+CreateMinidumpOnCrash` that helps to produce a more meaningful crash dump for analysis.

Problem

I have a problem with JavaFX desktop application, specifically with 3d rendering functionalities. Every time I try to build and launch JavaFX application, JVM crshes and I get error similiar to following one: ``` # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000000000000, pid=8440, tid=9008 # # JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13) # Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode windows-amd64 compressed oops) # Problematic frame: # C 0x0000000000000000 # # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows # # An error report file with more information is saved as: # D:\apps\desktop\hs_err_pid8440.log # # If you would like to submit a bug report, please visit: # http://bugreport.sun.com/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # ``` Entire log: http://pastebin.com/FC6NfVjF I tried different java version (1.7_51, 1.7_60, as well as 1.8_5), I tried updating graphic card drivers. Some project does launch, but as soon as I want to display some 'more complicated' effects (i.e. hovering a button), I get the same exception. Judging from the stacktrace, I believe it has something to do with directX. ``` j com.sun.prism.d3d.D3DVertexBuffer.nDrawIndexedQuads(J[F[BI)I+0 j com.sun.prism.d3d.D3DVertexBuffer.drawQuads(I)V+13 j com.sun.prism.impl.VertexBuffer.flush()V+12 ``` I'm working on machine with Windows 8.1 and DirectX 11. Probably it won't help, but here I'm also pasting DirectX Diagnostic Tool log: http://pastebin.com/giN4AFv4 Thanks for any input.

Original source