JRE crashes when trying to record the game with OBS

Hi,

Recently I’ve tried to create some recordings of our game for multiple reasons (like showing off those sexy Lemur Tweens animations :wink:).

I’ve decided to install OBS on my Lenovo T540p laptop and capture the game that way.

However, when I try to make OBS record the game window on that machine, the JRE crashes with this nice message:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006d9ba169, pid=17236, tid=11868
#
# JRE version: Java(TM) SE Runtime Environment (10.0.1+10) (build 10.0.1+10)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (10.0.1+10, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# V  [jvm.dll+0x2ba169]
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\******\Documents\Projects\games\retroflashyrpg\RetroFlashyRPG_Game\hs_err_pid17236.log

The EXCEPTION_ACCESS_VIOLATION made me think that maybe either OBS and/or Java needs to run with Administrative rights, but to no avail…

Yesterday, I’ve tried installing OBS on my custom built workstation at home (Just for reference, it has a nvidia Quadro M2000). Everything worked nicely with no problems…

I’m kind of clueless… Is it a problem with Java, OBS or JME?


I have some hypothesis:

  1. My laptop uses Optimus: there’s both a nvidia 730m and a Integrated Intel graphic card. Maybe OBS can’t deal with this? (Improbable, as only the JRE crashes: If i dont show the game window, it keeps on working fine)
  2. There’s something wrong with the OBS config.
  3. There’s something wrong with the JRE…
  4. I dont know. :neutral_face:

Right now, I still can record thing at home, but I’m always working on that laptop and not alway at home…
Any help is appreciated.

EXCEPTION_ACCESS_VIOLATION is a memory-related crash. Either a bug in the JVM tried to dereference or otherwise access an illegal memory address (extremely unlikely) or a bug in LWJGL/other native code tried to do the same (much more likely).

If this occurs only when recording with OBS then it suggests that the way OBS is interacting with the OS/graphics drivers is leaving things in a faulty state, triggering the access violation when your jME application interacts with the system. (Note that this could also be an OS/graphics driver bug that causes the JVM crash.)

A quick google search for “OBS minecraft crash” shows a lot of people having related issues going back many years. Start recoding in OBS and minecraft JVM crashes. I suspect danielp is totally correct, OBS messes up the driver state.

Yea, a lot of the screen capture software causes all sorts of issues. I know with spoxel I had to create all my viewports when I initialized Spoxel. Otherwise it would grab info from a random buffer or viewport or just not show that viewport at all.

Ok.
Then I’ll make my recordings on my workstation.

Thanks.

You can also try to test all the different modes of obs and maybe go for a window mode recording.
The thing is that for full screen recording these tools try to hook into the openGL Memory and get a callback on glSwapBuffers() to just grab the FrameBuffer output.

If you’re in windowed mode e.g., the data is available to the os already and can be queried really easy (at the downside of a bit performance maybe)

1 Like

ATI or nVidia ?

So that’s what they are doing! I figured it had to be something like that. I just noticed that if I added framebuffers after it tended to grab the new framebuffers and use them as the input. They must do some sort of initial measurement to judge when to grab the framebuffer.