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

Viktor Engelmann viktor.engelmann at qt.io
Mon Aug 22 10:18:19 CEST 2016


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 list
> Interest at qt-project.org
> http://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>

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 <http://www.qtworldsummit.com>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160822/2e57eb61/attachment.html>
-------------- 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/2e57eb61/attachment.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/2e57eb61/attachment-0001.png>
-------------- 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/2e57eb61/attachment-0002.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/2e57eb61/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/2e57eb61/attachment-0004.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/2e57eb61/attachment-0005.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/2e57eb61/attachment.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: viktor_engelmann.vcf
Type: text/x-vcard
Size: 271 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160822/2e57eb61/attachment.vcf>


More information about the Interest mailing list