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

Segmentation fault in applications utilising qtgui when running inside a VirtualBox Linux guest

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • Not Evaluated
    • None
    • 5.15.5
    • GUI: Painting
    • None
    • Linux/X11

    Description

      I have a VirtualBox Linux guest (Gentoo) running qtgui-5.15.5.  Any application that utilises qtgui will result in a segmentation fault.  Initially, I thought that this was a bug in KeePassXC, but after testing with another Qt-based application (the tea text editor), I realised that it is actually within the qtgui library.

      After an initial gdb backtrace yielded the following SGSEGV, I recompiled both qtgui and keepassxc with full debugging symbols enabled:

      (gdb) run
      Starting program: /usr/bin/keepassxc
      [Thread debugging using libthread_db enabled]
      Using host libthread_db library "/lib64/libthread_db.so.1".
      [New Thread 0x7ffff2d15640 (LWP 28141)]
      [New Thread 0x7ffff24f1640 (LWP 28142)]Thread 1 "keepassxc" received signal SIGSEGV, Segmentation fault.
      0x0000000000000000 in ?? ()
      (gdb) bt
      #0  0x0000000000000000 in ?? ()
      #1  0x0000555555643dcd in AdaptiveIconEngine::pixmap(QSize const&, QIcon::Mode, QIcon::State) ()
      #2  0x00007ffff6cbe424 in QIcon::pixmap(QWindow*, QSize const&, QIcon::Mode, QIcon::State) const () from /usr/lib64/libQt5Gui.so.5
      #3  0x00007ffff6cbe52e in QIcon::pixmap(QSize const&, QIcon::Mode, QIcon::State) const () from /usr/lib64/libQt5Gui.so.5
      #4  0x000055555571e90e in KMessageWidgetPrivate::init(KMessageWidget*) ()
      #5  0x000055555571f16f in KMessageWidget::KMessageWidget(QWidget*) ()
      #6  0x00005555556293c0 in MessageWidget::MessageWidget(QWidget*) ()
      #7  0x0000555555621d80 in Ui_MainWindow::setupUi(QMainWindow*) ()
      #8  0x00005555556161d2 in MainWindow::MainWindow() ()
      #9  0x00005555555f0954 in main () 
      

      I then inserted a breakpoint at the 'AdaptiveIconEngine' step, and did a `stepi` from that point until the segmentation fault.  The relevant portion toward the end of the stepping was:

      0x00007ffff6c28e4f   1105   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c28e50   1105   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      QImage::fill (pixel=0, this=0x7fffffffd690) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp:1734
      1734   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c298e7   1734   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c298ea   1734   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      1737   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c298f3   1748   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c298f7   1748   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c298fb   1738   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c298ff   1737   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29902   1748   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29906   1748   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29909   1737   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c2990f   1737   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29912   1737   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      1751   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c2991b   1751   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      1757   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29924   1757   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      1763   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c2992d   1763   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      1769   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29936   1769   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29939   1769   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      1771   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c2993e   1771   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      1777   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29aa2   1777   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29aa5   1778   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29aab   1778   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29aae   1778   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29ab1   1778   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      qt_rectfill<unsigned int> (x=0, y=0, stride=37, height=0, width=7106418, value=<optimized out>, dest=0x0) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:951
      951   /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h: No such file or directory.
      (gdb)
      0x00007ffff6c29952   955   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h
      (gdb)
      0x00007ffff6c29955   955   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h
      (gdb)
      qt_memfill<unsigned int> (count=113702688, color=<optimized out>, dest=0x0) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:932
      932   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h
      (gdb)
      0x00007ffff6c29a65   932   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h
      (gdb)
      0x00007ffff6c29a6e   932   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h
      (gdb)
      0x00007ffff6c29a74   932   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h
      (gdb)
      0x00007ffff6c29a7b in qt_rectfill<unsigned int> (x=0, y=0, stride=37, height=0, width=7106418, value=<optimized out>, dest=0x0) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:956
      956   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h
      (gdb)
      0x00007ffff6c29a7e in qt_memfill<unsigned int> (count=113702688, color=<optimized out>, dest=0x0) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:932
      932   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h
      (gdb)
      0x00007ffff6c29a80   932   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h
      (gdb)
      0x00007ffff6c29a83 in qt_rectfill<unsigned int> (x=0, y=0, stride=37, height=0, width=7106418, value=<optimized out>, dest=0x0) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:956
      956   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h
      (gdb)
      0x00007ffff6c29a87 in qt_memfill<unsigned int> (count=113702688, color=<optimized out>, dest=0x0) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:932
      932   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h
      (gdb)
      0x00007ffff6c29a8a in QImage::fill (this=this@entry=0x7fffffffd690, pixel=pixel@entry=0) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp:1782
      1782   /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp: No such file or directory.
      (gdb)
      0x00007ffff6c29a8e   1782   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29a8f   1782   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29a90   1782   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29a92   1782   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29a94   1782   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29a96   1782   in /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/src/gui/image/qimage.cpp
      (gdb)
      0x00007ffff6c29a98 in qt_memfill<unsigned int> (count=256, color=<optimized out>, dest=0x555555bc2c30) at /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h:932
      932   /var/tmp/portage/dev-qt/qtgui-5.15.5-r2/work/qtbase-everywhere-src-5.15.5/include/QtGui/5.15.5/QtGui/private/../../../../../src/gui/painting/qdrawhelper_p.h: No such file or directory.
      (gdb)
      0x0000000000000000 in ?? ()
      (gdb)Thread 1 "keepassxc" received signal SIGSEGV, Segmentation fault.
      0x0000000000000000 in ?? ()
      (gdb)
      Couldn't get registers: No such process.
      (gdb) [Thread 0x7ffff244e640 (LWP 12928) exited]
      [Thread 0x7ffff32c17c0 (LWP 12924) exited]
      [Thread 0x7ffff2c72640 (LWP 12927) exited]
      [New process 12924]Program terminated with signal SIGSEGV, Segmentation fault.
      The program no longer exists.The program is not being run.
      (gdb) 
      

      and I have attached the full gdb stepping log to this bug report.

      If any further information is needed, please let me know.

      Cheers,

      Nathan Zachary

      Attachments

        1. 20220817_gdb_stepping_qtgui_segfault_in_keepassxc
          71 kB
          Nathan Zachary
        2. 20220818_gdb_keepassxc_stepping_from_qicon_pixmap
          86 kB
          Nathan Zachary
        3. cpuid.txt
          34 kB
          Cebtenzzre X
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            vgt Eirik Aavitsland
            nathanzachary Nathan Zachary
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes