On 20-01-16 11:39, Jan Mulder wrote:

So, back to device 1)

Tested for the crash both the -683 from Google Play (so built with Qt 5.6), as well as a self built, using Qt 5.5. Crash behavior is identical, so I do not suspect a recent Qt problem or fix. Divelist is shown correctly, clicking the first (newest) dive, and the divedetails are shown, right swipe trough the divedetails of consecutive dives works (not "perfectly", as already mentioned somewhere, this list or IRC, it hicks at approx 75% of the next divedetails). From this, I conclude that it (the crash) is not something specific about one or more dives. Now restart the app, just to be sure to have a clean state, divelist is shown, and select the 3rd or 4rd dive from the top. I get an instant SIGSEGV for this. A small fragment from the tombstone:
backtrace:
     #00 pc 00254214  
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Gui.so
     #01 pc 00254d41  
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Gui.so
     #02 pc 00256927  
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Gui.so 
(QGridLayoutEngine::ensureColumnAndRowData(QGridLayoutRowData*, 
QGridLayoutBox*, double const*, double const*, Qt::Orientation, 
QAbstractLayoutStyleInfo const*) const+222)
     #03 pc 00256be5  /data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Gui.so 
(QGridLayoutEngine::sizeHint(Qt::SizeHint, QSizeF const&, 
QAbstractLayoutStyleInfo const*) const+604)
     #04 pc 0000893f  
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Layouts/libqquicklayoutsplugin.so
Obviously, reproducible and as I said ... very obscure and not clearly pointing to an obvious piece of Sursurface-mobile code.

It gets even more interesting. I can force a very similar SIGSEGV when running the mobile app on the desktop (in qtcreator) with debugging enabled. Open the app, select the first dive. Now the screen is split in left part divelist, and right part divedetail of the selected dive. There is a slider under the divedetail (to simulate sliding on a true device). Slide it (and see the console output, selecting trough the dives). This craches the app.

The call stack contains the exact same QGridLayoutEngine::ensureColumnAndRowData and QGridLayoutEngine::sizeHint and a huge stack of QQuickItem.SetImplicitSize. It almost looks like infinite recursion.

best,

--jan
_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to