Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-66079

SIGABRT/SIGSEGV error when using a QVulkanWindow

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2: Important
    • Resolution: Incomplete
    • Affects Version/s: 5.10.0
    • Fix Version/s: None
    • Component/s: GUI: Vulkan
    • Labels:
      None
    • Environment:
      Ubuntu 16.04

      LunarG Vulkan SDK 1.0.65.0

      NVidia driver 384.111

      GNU Make 4.1

      GNU gdb 7.11.1

      Description

      Hello team,

      I have created a simple program that can expose a Vulkan context based on the example “hellovulkancubes” supplied with the version 5.10.0 and I got a SIGABRT error.

      The example “hellovulkancubes” compile fine and execute without problem on my machine. So I conclude that there is no problem in the linking or with qmake.

      I copied most of the classes from “hellovulkancubes” to start with. I mainly changed the QVulkanWindowRenderer-derived class to test my own shaders and to load different meshes. But my program crashes even before it draw or initialized any Vulkan stuff I wrote.

      In fact, it seems to crash at the initialization of the QVulkanWindow but I am no expert in reading a backstack and all the intricate Qt functions calls so I post you the stack (I used gdb to debbug) :

      // code placeholder
      Thread 1 "visionneuse_qt" received signal SIGABRT, Aborted.
      
      #0 0x00007ffff6250428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
      #1 0x00007ffff625202a in __GI_abort () at abort.c:89
      #2 0x00007ffff62927ea in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x7ffff63abed8 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
      #3 0x00007ffff629d970 in malloc_printerr (ar_ptr=0x7ffff65dfb20 <main_arena>, ptr=0x967620, str=0x7ffff63a8c92 "corrupted double-linked list", action=<optimized out>) at malloc.c:5006
      #4 _int_malloc (av=av@entry=0x7ffff65dfb20 <main_arena>, bytes=bytes@entry=464) at malloc.c:3727
      #5 0x00007ffff629fdca in __libc_calloc (n=<optimized out>, elem_size=<optimized out>) at malloc.c:3236
      #6 0x00007ffff5d719e3 in ?? () from /usr/lib/nvidia-384/libGL.so.1
      #7 0x00007ffff393fe2d in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #8 0x00007ffff3879ad9 in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #9 0x00007ffff387b050 in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #10 0x00007ffff387b671 in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #11 0x00007ffff38f4551 in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #12 0x00007ffff38f0670 in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #13 0x00007ffff3963c4e in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #14 0x00007ffff3a17c03 in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #15 0x00007ffff38de05b in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #16 0x00007ffff389ee64 in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #17 0x00007ffff3bfb158 in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #18 0x00007ffff3bfc53c in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #19 0x00007ffff3c013ca in ?? () from /usr/lib/nvidia-384/libnvidia-glcore.so.384.111
      #20 0x00007ffff5d663c4 in ?? () from /usr/lib/nvidia-384/libGL.so.1
      #21 0x00007fffec1a45a3 in terminator_CreateDevice () from /opt/VulkanSDK/1.0.65.0/x86_64/lib/libvulkan.so
      #22 0x00007fffec1ad087 in loader_create_device_chain () from /opt/VulkanSDK/1.0.65.0/x86_64/lib/libvulkan.so
      #23 0x00007fffec1af9f3 in vkCreateDevice () from /opt/VulkanSDK/1.0.65.0/x86_64/lib/libvulkan.so
      #24 0x00007ffff7c55567 in QVulkanFunctions::vkCreateDevice (this=this@entry=0x6f1110, physicalDevice=physicalDevice@entry=0x6f4860, pCreateInfo=pCreateInfo@entry=0x7fffffffd270, pAllocator=pAllocator@entry=0x0, pDevice=pDevice@entry=0x8e5df0) at vulkan/qvulkanfunctions_p.cpp:99
      #25 0x00007ffff7c4c1ac in QVulkanWindowPrivate::init (this=this@entry=0x8e5c30) at /home/robin/Qt/5.10.0/Src/qtbase/src/gui/vulkan/qvulkanwindow.cpp:768
      #26 0x00007ffff7c4cc9d in QVulkanWindowPrivate::ensureStarted (this=this@entry=0x8e5c30) at /home/robin/Qt/5.10.0/Src/qtbase/src/gui/vulkan/qvulkanwindow.cpp:1555
      #27 0x00007ffff7c4ccdc in QVulkanWindow::exposeEvent (this=<optimized out>) at /home/robin/Qt/5.10.0/Src/qtbase/src/gui/vulkan/qvulkanwindow.cpp:1540
      #28 0x00007ffff7929394 in QWindow::event (this=this@entry=0x73d4b0, ev=ev@entry=0x7fffffffd850) at /home/robin/Qt/5.10.0/Src/qtbase/src/gui/kernel/qwindow.cpp:2302
      #29 0x00007ffff7c4e1bf in QVulkanWindow::event (this=0x73d4b0, e=0x7fffffffd850) at /home/robin/Qt/5.10.0/Src/qtbase/src/gui/vulkan/qvulkanwindow.cpp:1598
      #30 0x00007ffff6cdfad0 in QApplicationPrivate::notify_helper (this=this@entry=0x6792e0, receiver=receiver@entry=0x73d4b0, e=e@entry=0x7fffffffd850) at /home/robin/Qt/5.10.0/Src/qtbase/src/widgets/kernel/qapplication.cpp:3732
      #31 0x00007ffff6ce76e6 in QApplication::notify (this=0x7fffffffdb60, receiver=0x73d4b0, e=0x7fffffffd850) at /home/robin/Qt/5.10.0/Src/qtbase/src/widgets/kernel/qapplication.cpp:3104
      #32 0x00007ffff74fdd3a in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x73d4b0, event=event@entry=0x7fffffffd850) at /home/robin/Qt/5.10.0/Src/qtbase/src/corelib/kernel/qcoreapplication.cpp:1044
      #33 0x00007ffff791d7aa in QCoreApplication::sendSpontaneousEvent (event=0x7fffffffd850, receiver=0x73d4b0) at /home/robin/Qt/5.10.0/Src/qtbase/include/QtCore/../../src/corelib/kernel/qcoreapplication.h:237
      #34 QGuiApplicationPrivate::processExposeEvent (e=<optimized out>) at /home/robin/Qt/5.10.0/Src/qtbase/src/gui/kernel/qguiapplication.cpp:2880
      #35 0x00007ffff791e360 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x972e60) at /home/robin/Qt/5.10.0/Src/qtbase/src/gui/kernel/qguiapplication.cpp:1803
      #36 0x00007ffff78f4d7e in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /home/robin/Qt/5.10.0/Src/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:976
      #37 0x00007ffff7efab03 in QPAEventDispatcherGlib::processEvents (this=0x6e78f0, flags=...) at /home/robin/Qt/5.10.0/Src/qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:70
      #38 0x00007ffff74fbc0d in QEventLoop::processEvents (this=this@entry=0x7fffffffda10, flags=..., flags@entry=...) at /home/robin/Qt/5.10.0/Src/qtbase/src/corelib/kernel/qeventloop.cpp:134
      #39 0x00007ffff74fc086 in QEventLoop::exec (this=this@entry=0x7fffffffda10, flags=flags@entry=...) at /home/robin/Qt/5.10.0/Src/qtbase/src/corelib/kernel/qeventloop.cpp:212
      #40 0x00007ffff7505d7a in QCoreApplication::exec () at /home/robin/Qt/5.10.0/Src/qtbase/src/corelib/kernel/qcoreapplication.cpp:1332
      #41 0x00007ffff7913bd4 in QGuiApplication::exec () at /home/robin/Qt/5.10.0/Src/qtbase/src/gui/kernel/qguiapplication.cpp:1687
      #42 0x00007ffff6cdf9ab in QApplication::exec () at /home/robin/Qt/5.10.0/Src/qtbase/src/widgets/kernel/qapplication.cpp:2917
      #43 0x00000000004094e5 in main (argc=1, argv=<optimized out>) at main.cpp:5

       

      I also tried to activate some VK_LAYERs to see what happens and the bug just changed from SIGABRT to SIGSEGV but I got approximately the same stack.

      Thanks for your time,

      Cheers

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            lagocs Laszlo Agocs
            Reporter:
            robin_k Robin Kervadec
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes