Created attachment 1245928 [details] jvm error dump when running java -jar SkatGame.jar Description of problem: After "yum update" a few days ago, a libgdx application is no longer working. It segfaults right away in i965_dri.so Version-Release number of selected component (if applicable): segfault experienced with mesa-*-13.0.3-4.fc25.x86_64 and openjdkjava-1.8.0-openjdk-1.8.0.121-1.b14.fc25.x86_64 or Oracle's jdk1.8.0_121 and libgdx versions 1.8.0 or 1.9.5 The SkatGame application works on a similar FC25 system running a proprietary NVIDIA driver. It also worked on this machine for one year up until a software update last week (presumably involving mesa-*). My attempts to downgrade to an earlier mesa version failed. How reproducible: every time Steps to Reproduce: 1. download https://skatgame.net/app/SkatGame.jar 2. issue command java -jar SkatGame.jar Actual results: segmentation fault in i965_dri.so, jvm bug report attached Expected results: Window opens with SkatGame logo Additional info: SkatGame Application Page: https://skatgame.net/app/ SkatGame jar file: https://skatgame.net/app/SkatGame.jar lscpi output: 00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (rev 09) 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) 00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04) 00:16.0 Communication controller: Intel Corporation 7 Series/C216 Chipset Family MEI Controller #1 (rev 04) 00:1a.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #2 (rev 04) 00:1b.0 Audio device: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller (rev 04) 00:1c.0 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 (rev c4) 00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4) 00:1c.3 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 4 (rev c4) 00:1c.5 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 6 (rev c4) 00:1d.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1 (rev 04) 00:1f.0 ISA bridge: Intel Corporation HM77 Express Chipset LPC Controller (rev 04) 00:1f.2 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 04) 00:1f.3 SMBus: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller (rev 04) 01:00.0 VGA compatible controller: NVIDIA Corporation GF108M [GeForce GT 630M] (rev a1) 08:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01) 0a:00.0 Network controller: Intel Corporation Centrino Wireless-N 2230 (rev c4) 0b:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07) ========== LWJGL Call Context where segfault happens (in native function nDestroy): public void destroy(PeerInfo peer_info, ByteBuffer handle) throws LWJGLException { LinuxDisplay.lockAWT(); try { ByteBuffer peer_handle = peer_info.lockAndGetHandle(); try { nDestroy(peer_handle, handle); } finally { peer_info.unlock(); } } finally { LinuxDisplay.unlockAWT(); } } private static native void nDestroy(ByteBuffer peer_handle, ByteBuffer context_handle) throws LWJGLException; } ================== involved JNI code in lwjgl: JNIEXPORT void JNICALL Java_org_lwjgl_opengl_LinuxContextImplementation_nDestroy (JNIEnv *env, jclass clazz, jobject peer_handle, jobject context_handle) { X11PeerInfo *peer_info = (*env)->GetDirectBufferAddress(env, peer_handle); X11Context *context_info = (*env)->GetDirectBufferAddress(env, context_handle); lwjgl_glXDestroyContext(peer_info->display, context_info->context); } ================== glXDestroyContext appears to be hooked up to the external GL library here: static void extgl_InitGLX12(void) { ExtFunction functions[] = { {"glXChooseVisual", (void*)&lwjgl_glXChooseVisual}, {"glXCopyContext", (void*)&lwjgl_glXCopyContext}, {"glXCreateContext", (void*)&lwjgl_glXCreateContext}, {"glXCreateGLXPixmap", (void*)&lwjgl_glXCreateGLXPixmap}, {"glXDestroyContext", (void*)&lwjgl_glXDestroyContext}, {"glXDestroyGLXPixmap", (void*)&lwjgl_glXDestroyGLXPixmap}, {"glXGetConfig", (void*)&lwjgl_glXGetConfig}, {"glXGetCurrentContext", (void*)&lwjgl_glXGetCurrentContext}, {"glXGetCurrentDrawable", (void*)&lwjgl_glXGetCurrentDrawable}, {"glXIsDirect", (void*)&lwjgl_glXIsDirect}, {"glXMakeCurrent", (void*)&lwjgl_glXMakeCurrent}, {"glXQueryExtension", (void*)&lwjgl_glXQueryExtension}, {"glXQueryVersion", (void*)&lwjgl_glXQueryVersion}, {"glXSwapBuffers", (void*)&lwjgl_glXSwapBuffers}, {"glXUseXFont", (void*)&lwjgl_glXUseXFont}, {"glXWaitGL", (void*)&lwjgl_glXWaitGL}, {"glXWaitX", (void*)&lwjgl_glXWaitX}, {"glXGetClientString", (void*)&lwjgl_glXGetClientString}, {"glXQueryServerString", (void*)&lwjgl_glXQueryServerString}, {"glXQueryExtensionsString", (void*)&lwjgl_glXQueryExtensionsString}}; symbols_flags.GLX12 = extgl_InitializeFunctions(sizeof(functions)/sizeof(ExtFunction), functions); }
Today I experimented a bit more. I had repo fedora-updates-testing enabled. Disabling it and running dnf distro-sync resolved the issue. I am using mesa version 13.0.3-5 right now. So, perhaps the crash is caused by changes in the current updates-testing packages. In any case, skatgame.jar is working again, and this ticket can be closed.