[CLOSED] Jvm crash in nvoglv64.DLL

Started by hiflyer, July 26, 2011, 19:49:30

Previous topic - Next topic

hiflyer

Hi,

we're using the ardor3d engine (backed by lwjgl) to build a game. On my laptop I often get a jvm crash when playing the game. Not all the time though and I am the only one of about 8 people who get this error. I've asked the guys at ardor but I thought I might ask you guys as well since it's so deep down in your code the crash occurs.
Before you ask, yes I've updated lwjgl to 2.7.1 and my gfx drivers to the latest version ;)

I'll attach one of the crash logs since not all fits in this post

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000069e025a0, pid=8404, tid=4364
#
# JRE version: 6.0_25-b06
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.0-b11 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [nvoglv64.DLL+0x9025a0]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

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

Current thread (0x000000000021e000):  JavaThread "main" [_thread_in_native, id=4364, stack(0x00000000026b0000,0x00000000027b0000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x0000000007750000

Registers:
RAX=0x0000000000000000, RBX=0x0000000009c52fe8, RCX=0x00000000205ab8a0, RDX=0x0000000007750008
RSP=0x00000000027ae938, RBP=0x00000000027ae9d0, RSI=0x0000000069500000, RDI=0x0000000035928320
R8 =0x0000000000000010, R9 =0x00000000000031fc, R10=0x0000000000000010, R11=0x0000000000000010
R12=0x0000000009c52fd0, R13=0x0000000015fc2fd0, R14=0x0000000000000002, R15=0x0000000009c52c50
RIP=0x0000000069e025a0, EFLAGS=0x0000000000010206

Top of Stack: (sp=0x00000000027ae938)
0x00000000027ae938:   0000000069f13d95 0000000016043e50
0x00000000027ae948:   0000000000000001 0000000000000003
0x00000000027ae958:   00000000027ae9a0 0000000000000001
0x00000000027ae968:   0000000009c52fd0 0000000000000001
0x00000000027ae978:   0000000069f14f76 0000000009c52fe8
0x00000000027ae988:   0000000069e02590 0000000069500000
0x00000000027ae998:   000000000000000a 0000000009c52fd0
0x00000000027ae9a8:   0000000069e02590 0000000000000001
0x00000000027ae9b8:   00000000027ae9d0 0000000041f7c490
0x00000000027ae9c8:   0000000000000000 000000002059ec30
0x00000000027ae9d8:   0000000000000001 0000000041f7c490
0x00000000027ae9e8:   1080000000000000 0000000015fc2fd0
0x00000000027ae9f8:   0000000000004000 0000000000000020
0x00000000027aea08:   00000000078b2000 0000000000000005
0x00000000027aea18:   0000000000001405 0000000000000039
0x00000000027aea28:   0000000009c10000 0000000000003ec3 

Instructions: (pc=0x0000000069e025a0)
0x0000000069e02580:   83 e9 01 89 41 fc 75 d8 48 8b c1 c3 cc cc cc cc
0x0000000069e02590:   4d 63 d0 48 83 c2 08 66 0f 1f 84 00 00 00 00 00
0x0000000069e025a0:   8b 42 f8 48 83 c1 10 89 41 f0 8b 42 fc 89 41 f4
0x0000000069e025b0:   8b 02 89 41 f8 8b 42 04 49 03 d2 41 83 e9 01 89 


Register to memory mapping:

RAX=0x0000000000000000 is an unknown value
RBX=0x0000000009c52fe8 is an unknown value
RCX=0x00000000205ab8a0 is an unknown value
RDX=0x0000000007750008 is an unknown value
RSP=0x00000000027ae938 is pointing into the stack for thread: 0x000000000021e000
RBP=0x00000000027ae9d0 is pointing into the stack for thread: 0x000000000021e000
RSI=0x0000000069500000 is an unknown value
RDI=0x0000000035928320 is an unknown value
R8 =0x0000000000000010 is an unknown value
R9 =0x00000000000031fc is an unknown value
R10=0x0000000000000010 is an unknown value
R11=0x0000000000000010 is an unknown value
R12=0x0000000009c52fd0 is an unknown value
R13=0x0000000015fc2fd0 is an unknown value
R14=0x0000000000000002 is an unknown value
R15=0x0000000009c52c50 is an unknown value


Stack: [0x00000000026b0000,0x00000000027b0000],  sp=0x00000000027ae938,  free space=1018k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [nvoglv64.DLL+0x9025a0]  DrvPresentBuffers+0xad4d0

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J  org.lwjgl.opengl.GL11.nglDrawElements(IIILjava/nio/Buffer;IJ)V
J  org.lwjgl.opengl.GL11.glDrawElements(ILjava/nio/IntBuffer;)V
J  com.ardor3d.scenegraph.Mesh.render(Lcom/ardor3d/renderer/Renderer;Lcom/ardor3d/scenegraph/MeshData;)V
J  com.ardor3d.scenegraph.Mesh.render(Lcom/ardor3d/renderer/Renderer;)V
J  com.ardor3d.scenegraph.Mesh.draw(Lcom/ardor3d/renderer/Renderer;)V
J  com.ardor3d.renderer.queue.AbstractRenderBucket.render(Lcom/ardor3d/renderer/Renderer;)V
J  com.ardor3d.renderer.queue.RenderQueue.renderBuckets(Lcom/ardor3d/renderer/Renderer;)V
j  com.ardor3d.renderer.lwjgl.LwjglRenderer.renderBuckets(ZZ)V+18
j  com.ardor3d.renderer.lwjgl.LwjglRenderer.renderBuckets()V+3
j  se.spaced.client.ardor.SpacedScene.renderUnto(Lcom/ardor3d/renderer/Renderer;)Z+31
j  com.ardor3d.framework.lwjgl.LwjglCanvasRenderer.draw()Z+58
j  com.ardor3d.framework.lwjgl.LwjglCanvas.draw(Ljava/util/concurrent/CountDownLatch;)V+19
j  com.ardor3d.framework.FrameHandler.updateFrame()V+107
j  se.ardortech.BaseArdorMain.update()V+4
j  se.spaced.client.ardor.Spaced.update()V+11
j  se.ardortech.BaseArdorMain.mainLoop()V+30
j  se.ardortech.BaseArdorMain.run()V+69
j  se.spaced.client.ardor.Spaced.run()V+21
j  se.spaced.client.launcher.ArdorRealGame.start()V+185
j  se.spaced.client.launcher.ArdorRealGame.main([Ljava/lang/String;)V+7
v  ~StubRoutines::call_stub
j  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j  sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
j  sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+6
j  java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+161
j  com.intellij.rt.execution.application.AppMain.main([Ljava/lang/String;)V+140
v  ~StubRoutines::call_stub

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

OS: Windows 7 Build 7601 Service Pack 1

CPU:total 4 (2 cores per cpu, 2 threads per core) family 6 model 37 stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, ht

Memory: 4k page, physical 4052816k(624844k free), swap 8103788k(1110308k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (20.0-b11) for windows-amd64 JRE (1.6.0_25-b06), built on Apr 14 2011 00:44:38 by "java_re" with MS VC++ 8.0 (VS2005)

time: Tue Jul 26 17:05:06 2011
elapsed time: 78 seconds

Matthias

A crash in glDraw* is very often caused by having a stale buffer set via gl*Pointer and rendering more vertices then this buffer contains. This will lead to an crash caused by reading past the end of the buffer.