Subsurface-mobile crashes

Dirk Hohndel dirk at hohndel.org
Thu Apr 13 11:58:52 PDT 2017


Thanks to Marco we appear to have a potential fix. At least I can no longer reproduce the crashes.

New versions of Subsurface-mobile (4.6.3.228) should now be available to our testers both on iOS and Android

/D

> On Apr 13, 2017, at 7:43 AM, Dirk Hohndel <dirk at hohndel.org> wrote:
> 
> It seems that these crashes started with the move to Kirigami 2 and
> Quick.Controls.2 - but since they are somewhat hard to reproduce, I'm not
> 100% sure.
> 
> I have been able to create one scenario where I can trigger the crash
> reliably under a debugger, and the stack trace doesn't really tell me
> much.
> 
> We appear to be loading all of our code and based on the debug output we
> are just about to show the UI when things crash.
> 
> frame #0: 0x009354be Subsurface-mobile`QQuickItem::~QQuickItem(this=0x19f07e40) + 198 at qquickitem.cpp:2314
> frame #1: 0x0097482e Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement(this=0x19f07e40) + 46 at qqmlprivate.h:104
> frame #2: 0x003b5ee4 Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement(this=0x19f07e40) + 16 at qqmlprivate.h:102
> frame #3: 0x009747c8 Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement(this=0x19f07e40) + 16 at qqmlprivate.h:102
> frame #4: 0x012386b4 Subsurface-mobile`QObjectPrivate::deleteChildren(this=0x19f0c950) + 164 at qobject.cpp:1970
> frame #5: 0x01238494 Subsurface-mobile`QObject::~QObject(this=0x19f0c8f0) + 1372 at qobject.cpp:1041
> frame #6: 0x009356a4 Subsurface-mobile`QQuickItem::~QQuickItem(this=0x19f0c8f0) + 684 at qquickitem.cpp:2356
> frame #7: 0x003fccdc Subsurface-mobile`QQuickControl::~QQuickControl(this=0x19f0c8f0) + 20 at qquickcontrol_p.h:59
> frame #8: 0x003b9bd0 Subsurface-mobile`QQuickAbstractButton::~QQuickAbstractButton(this=0x19f0c8f0) + 72 at qquickabstractbutton.cpp:231
> frame #9: 0x003a3304 Subsurface-mobile`QQuickItemDelegate::~QQuickItemDelegate(this=0x19f0c8f0) + 20 at qquickitemdelegate_p.h:57
> frame #10: 0x003a6906 Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItemDelegate>::~QQmlElement(this=0x19f0c8f0) + 46 at qqmlprivate.h:104
> frame #11: 0x003a686c Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItemDelegate>::~QQmlElement(this=0x19f0c8f0) + 16 at qqmlprivate.h:102
> frame #12: 0x003a6888 Subsurface-mobile`QQmlPrivate::QQmlElement<QQuickItemDelegate>::~QQmlElement(this=0x19f0c8f0) + 16 at qqmlprivate.h:102
> frame #13: 0x012390d6 Subsurface-mobile`qDeleteInEventHandler(o=0x19f0c8f0) + 26 at qobject.cpp:4552
> frame #14: 0x01238d82 Subsurface-mobile`QObject::event(this=0x19f0c8f0, e=0x19f03c90) + 226 at qobject.cpp:1254
> frame #15: 0x0093f2d2 Subsurface-mobile`QQuickItem::event(this=0x19f0c8f0, ev=0x19f03c90) + 706 at qquickitem.cpp:7698
> frame #16: 0x0054010c Subsurface-mobile`QApplicationPrivate::notify_helper(this=0x17e92110, receiver=0x19f0c8f0, e=0x19f03c90) + 280 at qapplication.cpp:3745
> frame #17: 0x005414bc Subsurface-mobile`QApplication::notify(this=0x17d2a210, receiver=0x19f0c8f0, e=0x19f03c90) + 1196 at qapplication.cpp:3105
> frame #18: 0x01209ca2 Subsurface-mobile`QCoreApplication::notifyInternal2(receiver=0x19f0c8f0, event=0x19f03c90) + 374 at qcoreapplication.cpp:988
> frame #19: 0x009573e4 Subsurface-mobile`QCoreApplication::sendEvent(receiver=0x19f0c8f0, event=0x19f03c90) + 36 at qcoreapplication.h:231
> frame #20: 0x0120ac78 Subsurface-mobile`QCoreApplicationPrivate::sendPostedEvents(receiver=0x00000000, event_type=0, data=0x17d297d0) + 952 at qcoreapplication.cpp:1648
> frame #21: 0x0120a424 Subsurface-mobile`QCoreApplication::sendPostedEvents(receiver=0x00000000, event_type=0) + 32 at qcoreapplication.cpp:1502
> frame #22: 0x012b53f0 Subsurface-mobile`QEventDispatcherCoreFoundation::processPostedEvents(this=0x17e7ed90) + 184 at qeventdispatcher_cf.mm:405
> frame #23: 0x00436be4 Subsurface-mobile`QIOSEventDispatcher::processPostedEvents(this=0x17e7ed90) + 20 at qioseventdispatcher.mm:481
> frame #24: 0x012b6be0 Subsurface-mobile`RunLoopSource<QEventDispatcherCoreFoundation>::process(info=0x17e7eda4) + 72 at qeventdispatcher_cf_p.h:145
> frame #25: 0x23b1b9e6 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
> frame #26: 0x23b1b568 CoreFoundation`__CFRunLoopDoSources0 + 344
> frame #27: 0x23b1993e CoreFoundation`__CFRunLoopRun + 806
> frame #28: 0x23a681c8 CoreFoundation`CFRunLoopRunSpecific + 516
> frame #29: 0x23a67fbc CoreFoundation`CFRunLoopRunInMode + 108
> frame #30: 0x25084af8 GraphicsServices`GSEventRunModal + 160
> frame #31: 0x2819b434 UIKit`UIApplicationMain + 144
> frame #32: 0x00435c54 Subsurface-mobile`::qt_main_wrapper(argc=1, argv=0x0362fa90) + 468 at qioseventdispatcher.mm:232
> frame #33: 0x23714872 libdyld.dylib`start + 2
> 
> We seem to be crashing deep inside the destructor of a Delegate which
> appears to be a QQuickAbstractButton.
> 
> Marco - does this tell you anything more useful?
> 
> I'll be happy to try some things now that I can reproduce the crash.
> 
> Thanks
> 
> /D
> _______________________________________________
> subsurface mailing list
> subsurface at subsurface-divelog.org
> http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface



More information about the subsurface mailing list