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

        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