Segmentation fault on run

edited 2017 Jan 22 in Developers
Hello,
I am running Arch Linux x86_64 and I have compiled last source code for Doomsday 2.0.0 using cmake. Everything went as usual. When I try to run doomsday in terminal I get this log:
[adomas@genesis doomsday-2.0.0-build2153]$ doomsday
000.029    (i) Application path: /usr/bin/doomsday-2.0.0
000.029    (i) Build: 2.0-Unstable [#2155]
000.056        Created a new 32.0 MB memory volume.
000.166 R      Identified 281 data bundles in 0.0 seconds
000.344    (i) Executable: Doomsday Engine 2.0.0 (Unstable 64-bit +D +R) Nov 25 2016 01:13:22
000.344        Command line options:
000.344          0: doomsday
000.347        [RenderSystem > PackageLoader] Loading shader definitions from archive entry "renderer.pack/shaders.dei" from
                                              archive in "(basedir)/net.dengine.client.pack"
000.358                                       Loading shader definitions from archive entry "renderer.pack/lensflares.pack/
                                              shaders.dei" from archive in "(basedir)/net.dengine.client.pack"
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
000.553 I  (i) [Joystick_Init] No joysticks found
Segmentation fault (core dumped)
[adomas@genesis doomsday-2.0.0-build2153]$ 

All I get is flash of splash screen for a second and bam, seg fault. Tried binary version from AUR but same issue. I have NVIDIA GPU with proprietary drivers installed. Any idea how to solve this?

Comments

  • A backtrace of where the segfault occurs should be informative. Try these commands:
    1. First launch Doomsday in the debugger with: gdb doomsday
    2. Then with GDB running: run
    3. ...wait for the crash...
    4. Print a backtrace: bt
    5. quit

    When you're compiling manually, be sure to use the appropriate build config as well. These options (among others) can be given to cmake:
    • -DCMAKE_BUILD_TYPE=Release (optimized non-debug build)
    • -DCMAKE_BUILD_TYPE=Debug (for debugging)
  • Hey, skyjake :)

    I did as you wrote and here is the result:
    [adomas@genesis ~]$ gdb doomsday
    GNU gdb (GDB) 7.12
    Copyright (C) 2016 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-pc-linux-gnu".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>.
    Find the GDB manual and other documentation resources online at:                                                                                                                         
    <http://www.gnu.org/software/gdb/documentation/>.                                                                                                                                        
    For help, type "help".                                                                                                                                                                   
    Type "apropos word" to search for commands related to "word"...                                                                                                                          
    Reading symbols from doomsday...(no debugging symbols found)...done.                                                                                                                     
    (gdb) run                                                                                                                                                                                
    Starting program: /usr/bin/doomsday                                                                                                                                                      
    [Thread debugging using libthread_db enabled]                                                                                                                                            
    Using host libthread_db library "/usr/lib/libthread_db.so.1".                                                                                                                            
    [New Thread 0x7fffe8df5700 (LWP 4838)]                                                                                                                                                   
    [New Thread 0x7fffdbbb4700 (LWP 4839)]                                                                                                                                                   
    [New Thread 0x7fffd0488700 (LWP 4843)]                                                                                                                                                   
    [New Thread 0x7fffcfc87700 (LWP 4844)]                                                                                                                                                   
    [New Thread 0x7fffcf486700 (LWP 4845)]                                                                                                                                                   
    [New Thread 0x7fffcec85700 (LWP 4846)]                                                                                                                                                   
    [New Thread 0x7fffce484700 (LWP 4847)]                                                                                                                                                   
    [New Thread 0x7fffcdc83700 (LWP 4848)]                                                                                                                                                   
    [New Thread 0x7fffcd482700 (LWP 4849)]
    [New Thread 0x7fffccc81700 (LWP 4850)]
    [New Thread 0x7fffaffff700 (LWP 4851)]
    000.206    (i) Application path: /usr/bin/doomsday-2.0.0
    000.206    (i) Build: 2.0-Unstable [#2160]
    000.271        Created a new 32.0 MB memory volume.
    000.588 R      Identified 281 data bundles in 0.0 seconds
    000.758    (i) Executable: Doomsday Engine 2.0.0 (Unstable 64-bit +D +R) Nov 25 2016 01:13:22
    000.758        Command line options:
    000.758          0: /usr/bin/doomsday
    000.763        [RenderSystem > PackageLoader] Loading shader definitions from archive entry "renderer.pack/shaders.dei" from
                                                  archive in "(basedir)/net.dengine.client.pack"
    000.779                                       Loading shader definitions from archive entry "renderer.pack/lensflares.pack/
                                                  shaders.dei" from archive in "(basedir)/net.dengine.client.pack"
    libpng warning: iCCP: known incorrect sRGB profile
    libpng warning: iCCP: known incorrect sRGB profile
    libpng warning: iCCP: known incorrect sRGB profile
    libpng warning: iCCP: known incorrect sRGB profile
    libpng warning: iCCP: known incorrect sRGB profile
    001.411 I  (i) [Joystick_Init] No joysticks found
    
    Thread 1 "doomsday" received signal SIGSEGV, Segmentation fault.
    0x00007fffd9d2e9f5 in ?? () from /usr/lib64/libnvidia-glcore.so.375.20
    (gdb) bt
    #0  0x00007fffd9d2e9f5 in  () at /usr/lib64/libnvidia-glcore.so.375.20
    #1  0x00007fffda128b16 in  () at /usr/lib64/libnvidia-glcore.so.375.20
    #2  0x00007fffda25eeb6 in  () at /usr/lib64/libnvidia-glcore.so.375.20
    #3  0x00007fffd9ed2a9b in  () at /usr/lib64/libnvidia-glcore.so.375.20
    #4  0x00007fffd9e94e6c in  () at /usr/lib64/libnvidia-glcore.so.375.20
    #5  0x00007ffff6e14141 in QOpenGLFunctions_2_1::glLinkProgram(unsigned int) () at /usr/lib64/libdeng_gui.so.2.0
    #6  0x00007ffff6e1e592 in de::GLProgram::Impl::link() () at /usr/lib64/libdeng_gui.so.2.0
    #7  0x00007ffff6e1e4ac in de::GLProgram::Impl::bindVertexAttribs() () at /usr/lib64/libdeng_gui.so.2.0
    #8  0x00007ffff6e00da3 in de::GLProgram::build(de::GLShader const*, de::GLShader const*) () at /usr/lib64/libdeng_gui.so.2.0
    #9  0x00007ffff6e02390 in de::GLShaderBank::build(de::GLProgram&, de::DotPath const&) const () at /usr/lib64/libdeng_gui.so.2.0
    #10 0x00000000008a3101 in ModelRenderer::Impl::loadProgram(de::String const&) ()
    #11 0x00000000008a286f in ModelRenderer::Impl::init() ()
    #12 0x00000000008472f8 in ModelRenderer::glInit() ()
    #13 0x000000000087b6c4 in RenderSystem::glInit() ()
    #14 0x0000000000af3b7a in GL_EarlyInit() ()
    #15 0x00000000007b69fb in initialize() ()
    #16 0x00000000007b766a in DD_FinishInitializationAfterWindowReady() ()
    #17 0x000000000095bce6 in ClientWindow::Impl::windowInit(de::GLWindow&) ()
    #18 0x00007ffff6ddc7d0 in de::GLWindow::Impl::notifyReady() () at /usr/lib64/libdeng_gui.so.2.0
    #19 0x00007ffff6ddab41 in de::GLWindow::paintGL()::{lambda()#1}::operator()() const () at /usr/lib64/libdeng_gui.so.2.0
    #20 0x00007ffff6ddb4e7 in std:vf_Function_handler<void (), de::GLWindow::paintGL()::{lambda()#1}>:vf_M_invoke(std:vf_Any_data const&) () at /usr/lib64/libdeng_gui.so.2.0
    #21 0x00000000007a3a72 in std::function<void ()>::operator()() const ()
    #22 0x00007ffff510fff6 in de::LoopCallback::loopIteration() () at /usr/lib64/libdeng_core.so.2.0
    #23 0x00007ffff510fbdf in de::Loop::nextLoopIteration() () at /usr/lib64/libdeng_core.so.2.0
    #24 0x00007ffff6de2fa4 in de::GuiLoop::nextLoopIteration() () at /usr/lib64/libdeng_gui.so.2.0
    #25 0x00007ffff5253dd2 in de::Loop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () at /usr/lib64/libdeng_core.so.2.0
    #26 0x00007ffff4719659 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib64/libQt5Core.so.5
    #27 0x00007ffff47266d8 in QTimer::timerEvent(QTimerEvent*) () at /usr/lib64/libQt5Core.so.5
    #28 0x00007ffff471a473 in QObject::event(QEvent*) () at /usr/lib64/libQt5Core.so.5
    #29 0x00007ffff62a8e0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
    #30 0x00007ffff62b0581 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
    #31 0x00007ffff6de1960 in de::GuiApp::notify(QObject*, QEvent*) () at /usr/lib64/libdeng_gui.so.2.0
    #32 0x00007ffff46edde0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
    #33 0x00007ffff47416ae in QTimerInfoList::activateTimers() () at /usr/lib64/libQt5Core.so.5
    #34 0x00007ffff4741bd1 in  () at /usr/lib64/libQt5Core.so.5
    #35 0x00007fffeff89587 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
    #36 0x00007fffeff897f0 in  () at /usr/lib64/libglib-2.0.so.0
    #37 0x00007fffeff8989c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
    #38 0x00007ffff474270f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
    #39 0x00007ffff46ec23a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
    #40 0x00007ffff46f473c in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5
    #41 0x00007ffff6de1aff in de::GuiApp::execLoop() () at /usr/lib64/libdeng_gui.so.2.0
    #42 0x00000000007d76af in main ()
    (gdb) quit
    A debugging session is active.
    
            Inferior 1 [process 4834] will be killed.
    
    Quit anyway? (y or n) y
    [adomas@genesis ~]$ 
    
    

    How to solve this? :)
  • Looks like the crash is occurring in the video card driver. One possible reason is that the driver or your video card doesn't like the kind of OpenGL shaders that Doomsday is trying to use. Doomsday doesn't try to do anything extraordinary, though.

    Any alternative Nvidia driver versions you could try?
  • I was away for a few weeks, now when I came back, I updated my Arch Linux system and got new nvidia drivers. With new nvidia drivers game runs very good. I am very happy with this Doom source port engine! It is great ;)

    One thing - FreeDOOM1 is recognized as Ultimate DOOM. Not sure if it should be like that. It might have conflict with Ultimate DOOM when I install all the WADs (got it on Steam, need Windows PC now to get WADs)... I attached a screenshot.
  • Glad to hear it's working for you!

    That version of FreeDOOM is not in the set of recognized WADs at the moment. Which version is it / where did you get it from?

    BTW, since it looks like you're using a high-DPI display, try running Doomsday with the "-dpi 2" option. On Windows and Mac this is automatically detected, but on Linux the layout isn't automatically adjusted yet. That option should make the UI layout/spacings look nicer.
  • I got FreeDOOM from AUR repository (ArchLinux). I got these packages:
    https://aur.archlinux.org/packages/freedoom1/
    https://aur.archlinux.org/packages/freedoom2/

    Source of files seems to be https://freedoom.github.io/

    Yes, I use High-DPI monitor, but I most of times use 1.5 (150%) ratio, as 2 looks huge for me :) launching Doomsday with "-dpi 1.5" made it look better ;)
  • I've now added the Freedoom IWADs in the database of recognized IWADs, so the latest unstable builds (2208+) shouldn't confuse them with Ultimate Doom anymore. Let me know if there are still problems with that...
Sign In or Register to comment.