Linux - Random segfaults

Ghosthree3Ghosthree3 Join Date: 2010-02-13 Member: 70557Members, Reinforced - Supporter
edited February 2018 in Technical Support
I've started playing this game again in the last few days after remembering that it has Linux support. However, since doing so I have been plagued with random freezes/crashes that are apparently segfaults. There's no commonality between them that I've noticed other than that I'm simply playing the game. It happens on either team, with any weapon/form, and has an interval of anywhere between several hours and several minutes (one time 3-4 hours, then 2 hours and several more crashes later, 3 minutes after I had reconnected). 9 times out of 10 when it freezes I am forced to SIGKILL it or it will hang indefinitely, but occasionally it closes itself after 30 seconds or so.

Here's the gdb backtrace from the last one I had.
Thread 1 "ns2_linux" received signal SIGSEGV, Segmentation fault.
0x00007f1fc5d13d6e in __memmove_sse2_unaligned_erms () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007f1fc5d13d6e in __memmove_sse2_unaligned_erms () from /usr/lib/libc.so.6
#1  0x00007f1f73e63f29 in ?? () from /usr/lib/libnvidia-glcore.so.387.34
#2  0x00007f1f73e6ea93 in ?? () from /usr/lib/libnvidia-glcore.so.387.34
#3  0x00007f1f73a32b97 in ?? () from /usr/lib/libnvidia-glcore.so.387.34
#4  0x00007f1fc7c39346 in M4::OpenGLDevice::DrawIndexedPrimitives (this=0x7f1fbc00f7f0, 
    primitiveType=primitiveType@entry=M4::RenderPrimitiveType_TriangleList, minVertexIndex=minVertexIndex@entry=0, 
    numVertices=65, startIndex=startIndex@entry=0, numPrimitives=numPrimitives@entry=48, numInstances=2)
    at ../Source/Render/OpenGLDevice.cpp:1084
#5  0x00007f1fc7c63464 in M4::RenderModelProxy::RenderFaceSet (this=0x7f1f54970ee0, 
    faceSetIndex=faceSetIndex@entry=0, numInstances=2) at ../Source/Render/RenderModelProxy.cpp:331
#6  0x00007f1fc7c5f8ef in M4::RenderModelArray::RenderFaceSet (this=0x7f1ea3db8ea0, faceSetIndex=0)
    at ../Source/Render/RenderModelArray.cpp:424
#7  0x00007f1fc7c7abda in M4::ObjectRenderer<M4::RenderModelArray>::RenderFaceSet (this=0x7ffe4ca15fa7, faceSet=..., 
    faceSet=...) at ../Source/Render/RenderRenderer.cpp:357
#8  M4::RenderRenderer::RenderFaceSets<M4::RenderModelArray, M4::ObjectRenderer<M4::RenderModelArray> > (
    this=this@entry=0x7f1f56545d80, context=..., viewerParams=..., renderer=..., 
    faceSets=faceSets@entry=0x7f1ef3f25070, numFaceSets=numFaceSets@entry=22)
    at ../Source/Render/RenderRenderer.cpp:3338
#9  0x00007f1fc7c77db6 in M4::RenderRenderer::RenderModelArrays (this=this@entry=0x7f1f56545d80, context=..., 
    viewerParams=..., modelArray=<optimized out>, numModelArrays=<optimized out>, 
    techniqueIndex=techniqueIndex@entry=1, reverseCulling=false, shadows=false)
    at ../Source/Render/RenderRenderer.cpp:2539
#10 0x00007f1fc7c78fec in M4::RenderRenderer::RenderObjects (this=this@entry=0x7f1f56545d80, context=..., 
    viewerParams=..., typeIndex=..., techniqueIndex=techniqueIndex@entry=1, objectsMask=objectsMask@entry=4294967039)
    at ../Source/Render/RenderRenderer.cpp:2088
#11 0x00007f1fc7c794b2 in M4::RenderRenderer::RenderObjects (this=this@entry=0x7f1f56545d80, scene=scene@entry=
    0x7f1f56eedc20, context=..., typeIndexes=typeIndexes@entry=0x7ffe4ca16690, camera=..., viewport=..., 
    techniqueIndex=1, objectsMask=4294967039, zonesMask=4294967295) at ../Source/Render/RenderRenderer.cpp:2911
#12 0x00007f1fc7c79d81 in M4::RenderRenderer::Render (this=0x7f1f56545d80, pipeline=pipeline@entry=0x7f1f203c9010, 
    colorTarget=0x7f1fbc04ef40, depthTarget=depthTarget@entry=0x7f1fbc669e60, faceIndex=faceIndex@entry=0, 
    sourceTexture=sourceTexture@entry=0x0, sceneSettings=0x7f1efb482782, setupSettings=0x7ffe4ca169c0, 
    scene=0x7f1f56eedc20, time=<optimized out>, camera=..., viewport=..., visibleObjects=..., 
    background=<optimized out>) at ../Source/Render/RenderRenderer.cpp:1229
#13 0x00007f1fc7c8784b in M4::RenderScene::InternalRender (this=this@entry=0x7f1f56eedc20, settings=..., 
    colorTarget=<optimized out>, colorTarget@entry=0x7f1fbc04ef40, depthTarget=depthTarget@entry=0x7f1fbc669e60, 
    faceIndex=faceIndex@entry=0, pipeline=pipeline@entry=0x7f1f203c9010, camera=..., prevCamera=0x0, viewport=..., 
    renderMask=4294967295, cullingMode=M4::RenderScene_CullingMode_Occlusion, background=0x0, 
    deltaTime=deltaTime@entry=0.0173339844) at ../Source/Render/RenderScene.cpp:794
#14 0x00007f1fc7c87c5b in M4::RenderScene::InternalRender (this=this@entry=0x7f1f56eedc20, settings=..., 
    colorTarget=colorTarget@entry=0x7f1fbc04ef40, depthTarget=depthTarget@entry=0x7f1fbc669e60, 
    faceIndex=faceIndex@entry=0, camera=camera@entry=0x7f1f2243a810, _viewport=0x0, background=0x0, 
    deltaTime=deltaTime@entry=0.0173339844) at ../Source/Render/RenderScene.cpp:732
#15 0x00007f1fc7c87edc in M4::RenderScene::RenderMainCamera (this=this@entry=0x7f1f56eedc20, settings=..., 
    colorTarget=0x7f1fbc04ef40, depthTarget=depthTarget@entry=0x7f1fbc669e60, faceIndex=faceIndex@entry=0, 
    camera=camera@entry=0x7f1f2243a810, viewport=0x0, background=0x0, time=time@entry=1674.8392333984375)
    at ../Source/Render/RenderScene.cpp:693
#16 0x00007f1fc7c87f95 in M4::RenderScene::Render (this=0x7f1f56eedc20, settings=..., colorTarget=<optimized out>, 
    depthTarget=0x7f1fbc669e60, camera=0x7f1f2243a810, background=background@entry=0x0, time=1674.8392333984375, 
    time@entry=6.9057667515803026e-310) at ../Source/Render/RenderScene.cpp:492
#17 0x0000000000454850 in M4::ClientWorld::Render (this=<optimized out>, drawer=..., 
    swapChain=swapChain@entry=0x7f1fbc72dfa0) at ../Source/Spark_Client/ClientWorld.cpp:3169
#18 0x0000000000433e36 in M4::ClientGame::Render (this=this@entry=0x7f1fbc04a010, swapChain=0x7f1fbc72dfa0)
    at ../Source/Spark_Client/ClientGame.cpp:2002
#19 0x0000000000446f9e in M4::ClientGame::Update (this=0x7f1fbc04a010, deltaTime=<optimized out>)
    at ../Source/Spark_Client/ClientGame.cpp:1184
#20 0x0000000000430a45 in M4::ClientEngine::Update (this=0x7f1fc8e0a420, deltaTime=0.018223483999463497)
    at ../Source/Spark_Client/ClientEngine.cpp:253
#21 0x00000000004a52b1 in M4::BaseEngine::RunFrame (this=0x7f1fc8e0a420) at ../Source/Spark_Server/BaseEngine.cpp:212
#22 M4::BaseEngine::Run (this=0x7f1fc8e0a420) at ../Source/Spark_Server/BaseEngine.cpp:176
#23 0x000000000042e13c in main (argc=<optimized out>, argv=<optimized out>) at ../Source/ShooterExe/Main.cpp:113

The Crash Handler seems to only work when the game closes itself, which it did not do this time so I have no associated one to attach.

However I can tell you that the log.txt will contain nothing of interest, and I do not know how to analyze the dump.dmp to see if it would. If you require it I can try and obtain one, but the crashes are already random, a 'proper' crash might take a while to catch.

EDIT: Got another segfault, backtrace looks identical other than different memory addresses.

Comments

  • Ghosthree3Ghosthree3 Join Date: 2010-02-13 Member: 70557Members, Reinforced - Supporter
    After playing on Windows for about a week and not experiencing a single crash I think hardware can be ruled out. Whether the issue is with the game itself or the nvidia drivers is still up in the air though.
  • rkfgrkfg Russia Join Date: 2013-09-03 Member: 187744Members, Reinforced - Supporter, Reinforced - Silver, Reinforced - Gold, Reinforced - Diamond, Reinforced - Shadow
    This was an issue for me long ago on a very old driver. Post your hardware configuration and Xorg/kernel/NVIDIA driver versions. I play every day and have no crashes whatsoever.
  • Ghosthree3Ghosthree3 Join Date: 2010-02-13 Member: 70557Members, Reinforced - Supporter
    rkfg wrote: »
    This was an issue for me long ago on a very old driver. Post your hardware configuration and Xorg/kernel/NVIDIA driver versions. I play every day and have no crashes whatsoever.
    It's been brought up a few times on the Discord and it appears as if there's a bug in NS2's opengl implementation that causes the crash. Laaas has even created a patched version of mesa to workaround the issue, https://github.com/Laaas/mesa-ns2 but it obviously requires you to use the open source NVIDIA drivers, which have worse performance.

    Unfortunately nothing can be done (other than this bandaid) unless the bug in the Spark engine is fixed.
  • rkfgrkfg Russia Join Date: 2013-09-03 Member: 187744Members, Reinforced - Supporter, Reinforced - Silver, Reinforced - Gold, Reinforced - Diamond, Reinforced - Shadow
    Like I said, it definitely was an issue before (maybe a year or two ago) but then it has been fixed on the NVIDIA side (yes, the driver devs can detect if the game with known bugs is running and use workarounds so it doesn't crash or glitch). I don't know the details but I downgraded the driver because of some other game and started to have these crashes in M4::OpenGLDevice::DrawIndexedPrimitives, especially on shotgun fire. After upgrading the driver back to the latest version they were gone. You can also try lowering the Texture Handling parameter which is known to cause crashes even on Windows if set too high. I used to set it to 1/2 of my VRAM when it was a bottleneck. On my old 770 GTX I had 2 Gb VRAM so I set that parameter to 1 Gb and it was fine after that. On my current 1070 GTX I use 2Gb+ as it has 8 Gb VRAM.
Sign In or Register to comment.