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

QGraphicsView layouts create a global QWidget

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • P1: Critical
    • Resolution: Out of scope
    • 4.8.5, 5.3.0
    • None
    • Widgets: GraphicsView
    • None

    Description

      QGraphicsGridLayout and QGraphicsLinearLayout use global QWidgets, causing crashes in some KDE applications on exit. According to QTBUG-16974 global QWidgets are unsupported.

      The presence of Q_GLOBAL_STATIC QWidgets has been verified on Qt 5.3 (dev branch) and Qt 4.8.5.

      Backtrace from Qt 4.8.5 looks as follows, and confirms "globalStyleInfoWidget" causing the issue:

      Thread 1 (Thread 0x7f23b1e45780 (LWP 1163)):
      [KCrash Handler]
      #6 0x00007f23afd7b69e in QRasterWindowSurface::~QRasterWindowSurface (this=0x726e6d0, __in_chrg=<optimized out>) at painting/qwindowsurface_raster.cpp:117
      #7 0x00007f23afd7b769 in QRasterWindowSurface::~QRasterWindowSurface (this=0x726e6d0, __in_chrg=<optimized out>) at painting/qwindowsurface_raster.cpp:121
      #8 0x00007f23afd96dd7 in QWidgetBackingStore::~QWidgetBackingStore (this=0x5edc9a0, __in_chrg=<optimized out>) at painting/qbackingstore.cpp:909
      #9 0x00007f23afbad3e9 in QWidgetBackingStoreTracker::destroy (this=0x70d2a50) at kernel/qwidget.cpp:225
      #10 0x00007f23afbad595 in QWidgetPrivate::deleteExtra (this=this@entry=0x16b3d20) at kernel/qwidget.cpp:1833
      #11 0x00007f23afbad7dd in QWidgetPrivate::~QWidgetPrivate (this=0x16b3d20, __in_chrg=<optimized out>) at kernel/qwidget.cpp:365
      #12 0x00007f23afbada69 in QWidgetPrivate::~QWidgetPrivate (this=0x16b3d20, __in_chrg=<optimized out>) at kernel/qwidget.cpp:370
      #13 0x00007f23b0aa2007 in cleanup (pointer=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:62
      #14 ~QScopedPointer (this=0x1727008, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:100
      #15 QObject::~QObject (this=0x1727000, __in_chrg=<optimized out>) at kernel/qobject.cpp:816
      #16 0x00007f23afbb76dc in QWidget::~QWidget (this=0x1727000, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1554
      #17 0x00007f23afbb7959 in QWidget::~QWidget (this=0x1727000, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1703
      #18 0x00007f23b0156d55 in QGlobalStaticDeleter<QWidget>::~QGlobalStaticDeleter (this=0x7f23b06e1988 <globalStyleInfoWidget()::cleanup>, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qglobal.h:1950
      #19 0x00007f23af31dc99 in __run_exit_handlers () from /lib/libc.so.6
      #20 0x00007f23af31dce5 in exit () from /lib/libc.so.6

      For more backtraces of the crashes, see also https://bugs.kde.org/show_bug.cgi?id=261539

      See also https://qt.gitorious.org/qt/bibrs-qt/commit/f900144fdb7e5b811011315a98b7ea7ed9a80f32

      Attachments

        Issue Links

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

          Activity

            People

              Unassigned Unassigned
              cfeck Christoph Feck
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes