[Interest] [Qt5.x] QComboBox-related crash

Andy asmaloney at gmail.com
Mon Aug 22 14:41:56 CEST 2016


Thanks Viktor.

Possibly related, thanks for something else to look into.  FWIW I'm not
using WebEngine nor do I have it installed.  Just straight old C++ Qt
widgets.

I have not made any progress on this though, so if there aren't any other
suggestions/input I'll try to make a small example to repro it and file a
bug.


---
Andy Maloney  //  https://asmaloney.com
twitter ~ @asmaloney <https://twitter.com/asmaloney>


On Mon, Aug 22, 2016 at 4:18 AM, Viktor Engelmann <viktor.engelmann at qt.io>
wrote:

> could be related to one of these:
>
> https://bugreports.qt.io/browse/QTBUG-55134
> https://bugreports.qt.io/browse/QTBUG-55135
> https://bugreports.qt.io/browse/QTBUG-55158
>
>
>
> On 20.08.2016 00:09, Andy wrote:
>
> This has me stumped.
>
> Problem:
>
> I have an app with plugins.  Each plugin has a form widget which is
> displayed in a dialog.
>
> If I bring up the dialog and click a QComboBox within the form, when I
> quit my app I get the following in the console:
>
>   Warning: QBasicTimer::start: QBasicTimer can only be used with threads
> started with QThread    (:0, (null))
>
> and the app crashes.
>
> Here's the Mac stack trace:
>
> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
> 0   org.qt-project.QtCore             0x0000000101ef98eb
> QThreadStorageData::get() const + 43
> 1   org.qt-project.QtGui              0x0000000101904d36 QOpenGLContext::currentContext()
> + 22
> 2   org.qt-project.QtGui              0x0000000101b6b483
> QPlatformBackingStorePrivate::~QPlatformBackingStorePrivate() + 19
> 3   org.qt-project.QtGui              0x0000000101b6b2c1
> QPlatformBackingStore::~QPlatformBackingStore() + 33
> 4   libqcocoa.dylib                   0x0000000105168d7e
> QCocoaBackingStore::~QCocoaBackingStore() + 14
> 5   org.qt-project.QtGui              0x0000000101a6b8cc
> QBackingStore::~QBackingStore() + 28
> 6   org.qt-project.QtWidgets          0x00000001011fa5fc
> deleteBackingStore(QWidgetPrivate*) + 204
> 7   org.qt-project.QtWidgets          0x00000001011fa408 QWidgetPrivate::deleteTLSysExtra()
> + 56
> 8   org.qt-project.QtWidgets          0x00000001011fa172
> QWidget::destroy(bool, bool) + 834
> 9   org.qt-project.QtWidgets          0x00000001011f98d6
> QWidget::~QWidget() + 1462
> 10  org.qt-project.QtWidgets          0x00000001012d753e
> QComboBoxPrivateContainer::~QComboBoxPrivateContainer() + 62
> 11  org.qt-project.QtCore             0x00000001020e0a83 QObjectPrivate::deleteChildren()
> + 227
> 12  org.qt-project.QtWidgets          0x00000001011f98ba
> QWidget::~QWidget() + 1434
> 13  org.qt-project.QtWidgets          0x00000001012d03f7
> QComboBox::~QComboBox() + 71
> 14  org.qt-project.QtCore             0x00000001020e0a83 QObjectPrivate::deleteChildren()
> + 227
> 15  org.qt-project.QtWidgets          0x00000001011f98ba
> QWidget::~QWidget() + 1434
> 16  (my form destructor)
>
> and the Windows stack trace:
>
> 1  QThreadStorageData::get
> qthreadstorage.cpp        117   0x6b79923c
> 2  qThreadStorage_localData<QGuiGLThreadContext>
> qthreadstorage.h          65    0x3b878f0
> 3  QThreadStorage<QGuiGLThreadContext *>::localData
> qthreadstorage.h          139   0x3bb72dc
> 4  QOpenGLContext::currentContext
>                                    qopenglcontext.cpp        415
> 0x388b59b
> 5  QPlatformBackingStorePrivate::~QPlatformBackingStorePrivate
> qplatformbackingstore.cpp 84    0x3be3f93
> 6  QPlatformBackingStore::~QPlatformBackingStore
> qplatformbackingstore.cpp 608   0x3a64b6a
> 7  QWindowsBackingStore::~QWindowsBackingStore
> qwindowsbackingstore.cpp  62    0x62891f4c
> 8  QWindowsBackingStore::~QWindowsBackingStore
> qwindowsbackingstore.cpp  65    0x62891f75
> 9  QBackingStore::~QBackingStore
> qbackingstore.cpp         142   0x3995f8f
> 10 deleteBackingStore
> qwidget.cpp               1858  0xef95352
> 11 QWidgetPrivate::deleteTLSysExtra
>                                    qwidget.cpp               1875
> 0xef953e4
> 12 QWidget::destroy
> qwidget.cpp               12297 0xefad3b7
> 13 QWidget::~QWidget
> qwidget.cpp               1679  0xef94c46
> 14 QFrame::~QFrame
> qframe.cpp                256   0xf0b3d8a
> 15 QComboBoxPrivateContainer::~QComboBoxPrivateContainer
> qcombobox_p.h             208   0xf2fb8f2
> 16 QComboBoxPrivateContainer::~QComboBoxPrivateContainer
> qcombobox_p.h             208   0xf2fb8a3
> 17 QObjectPrivate::deleteChildren
>                                    qobject.cpp               1963
> 0x6b8f6ed7
> 18 QWidget::~QWidget
> qwidget.cpp               1674  0xef94c18
> 19 QComboBox::~QComboBox
> qcombobox.cpp             1332  0xf088949
> 20 QComboBox::~QComboBox
> qcombobox.cpp             1343  0xf08897f
> 21 QObjectPrivate::deleteChildren
>                                    qobject.cpp               1963
> 0x6b8f6ed7
> 22 QWidget::~QWidget
> qwidget.cpp               1674  0xef94c18
> 23 QGroupBox::~QGroupBox
> qgroupbox.cpp             206   0xf0b4dc8
> 24 (my form destructor)
>
>
> Possibly relevant info:
>
> 0) the form is being created & displayed in a plugin
> 1) the combo box is in a QGroupBox created with a designer form (.ui file)
> 2) the form widget itself is created once with "new Ui::FormName /
> setupUi()" when the plugin is loaded
> 3) the dialog takes temporary ownership of the widget and calls
> widget->setParent( nullptr ); in its destructor so the form does not get
> destructed
> 4) 4.x does not crash (been working for 10 years...)
> 5) 5.6.x and any 5.7 versions I have tried cause a crash
> 6) it crashes on both Mac OS X and Windows
> 7) I'm not doing anything funky with the combo box - just displaying it
> and taking action on selection
> 8) combo boxes in my main app don't seem to be an issue
> 9) if I don't touch the combo boxes (i.e. display the dialog, dismiss it,
> and quit my app) -> no crash
>
> Theories I haven't been able to prove/disprove:
>
> 1) there's a singleshot that is fired to display the popup selection and
> it's deleting or doing something it shouldn't
> 2) it's a thread problem because this is in a plugin
> 3) something isn't liking the dialog's temporary ownership of the form
>
> Anyone with some in-depth knowledge of the QComboBox have any ideas what
> might be going on here?
>
> Thank you for your time.
>
> ---
> Andy Maloney  //  https://asmaloney.com
> twitter ~ @asmaloney <https://twitter.com/asmaloney>
>
>
>
> _______________________________________________
> Interest mailing listInterest at qt-project.orghttp://lists.qt-project.org/mailman/listinfo/interest
>
>
> --
>
>
> Viktor Engelmann
> Software Engineer
>
> The Qt Company GmbH
> Rudower Chaussee 13
> D-12489 Berlin
> Viktor.Engelmann at qt.io
> +49 151 26784521
> http://qt.io
>
> Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho
> Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht
> Charlottenburg, HRB 144331 B
> <http://qt.io>
> <http://www.facebook.com/Qt> <http://www.twitter.com/qtproject>
> <https://www.linkedin.com/company/the-qt-company/>
> <https://plus.google.com/104580575722059274792>
> <https://www.youtube.com/QtStudios>
> [image: Qt World Summit 2016] <http://qtworldsummit.com/>
> Qt World Summit 2016 | Pier 27, San Francisco, CA
> Experience Exponential Potential on October 18-20
> www.qtworldsummit.com
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160822/44705270/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: qt_twitter.png
Type: image/png
Size: 1778 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160822/44705270/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: qt_youtube.png
Type: image/png
Size: 1610 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160822/44705270/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: qt_linkedin.png
Type: image/png
Size: 1532 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160822/44705270/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: qt_facebook.png
Type: image/png
Size: 1407 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160822/44705270/attachment-0003.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: qt_googleplus.png
Type: image/png
Size: 1957 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160822/44705270/attachment-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: qtworldsummit2016_banner.jpg
Type: image/jpeg
Size: 35183 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160822/44705270/attachment.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: qt_logo_with_text_green_rgb_400x141.png
Type: image/png
Size: 16849 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160822/44705270/attachment-0005.png>


More information about the Interest mailing list