testing of download from divecomputer needed

Miika Turkia miika.turkia at gmail.com
Sun Jan 11 02:48:09 PST 2015


On Sat, Jan 10, 2015 at 1:22 AM, Dirk Hohndel <dirk at hohndel.org> wrote:

> I redid the logic for downloading from the divecomputer.
> The cool "select which dives you want" UI had some major flaws (as poor
> Miika found out) which triggered me to actually read some of the ancient
> code around downloading from dive computers which almost made me puke.
>
> So instead of patching around this and make the new UI kinda work I
> decided to rip things out and redo them.
>

A segmentation fault:
Program received signal SIGSEGV, Segmentation fault.
0x00000000004a9036 in MainTab::updateDiveInfo (this=0xb20940, clear=false)
    at ../qt-ui/maintab.cpp:517
517            ui.DiveType->setCurrentIndex(current_dc->divemode);
(gdb) bt
#0  0x00000000004a9036 in MainTab::updateDiveInfo (this=0xb20940,
clear=false)
    at ../qt-ui/maintab.cpp:517
#1  0x00000000004b9cd1 in MainWindow::current_dive_changed (this=0xadeae0,
    divenr=-1) at ../qt-ui/mainwindow.cpp:236
#2  0x000000000058be6c in MainWindow::qt_static_metacall (_o=0xadeae0,
    _c=QMetaObject::InvokeMetaMethod, _id=31, _a=0x7fffffffbc90)
    at .moc/moc_mainwindow.cpp:347
#3  0x00007ffff52162a6 in QMetaObject::activate(QObject*, int, int, void**)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00000000005885f6 in DiveListView::currentDiveChanged (this=0xf003c0,
    _t1=-1) at .moc/moc_divelistview.cpp:208
#5  0x0000000000479f98 in DiveListView::selectionChanged (this=0xf003c0,
    selected=..., deselected=...) at ../qt-ui/divelistview.cpp:561
#6  0x00007ffff652e6c9 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007ffff52162a6 in QMetaObject::activate(QObject*, int, int, void**)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007ffff51b00a7 in
QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection
const&) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007ffff51b49dd in
QItemSelectionModel::emitSelectionChanged(QItemSelection const&,
QItemSelection const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff51b7ef0 in QItemSelectionModel::select(QItemSelection
const&, QFlags<QItemSelectionModel::SelectionFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007ffff51b1448 in QItemSelectionModel::clearSelection() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x0000000000478318 in DiveListView::unselectDives (this=0xf003c0)
    at ../qt-ui/divelistview.cpp:269
#13 0x00000000004992cf in DownloadFromDCWidget::on_ok_clicked (
    this=0x7fffffffd0c0) at ../qt-ui/downloadfromdivecomputer.cpp:439
#14 0x000000000058a1bb in DownloadFromDCWidget::qt_static_metacall (
    _o=0x7fffffffd0c0, _c=QMetaObject::InvokeMetaMethod, _id=1,
    _a=0x7fffffffc3c0) at .moc/moc_downloadfromdivecomputer.cpp:275
#15 0x000000000058a384 in DownloadFromDCWidget::qt_metacall (
    this=0x7fffffffd0c0, _c=QMetaObject::InvokeMetaMethod, _id=1,
    _a=0x7fffffffc3c0) at .moc/moc_downloadfromdivecomputer.cpp:317
#16 0x00007ffff521636d in QMetaObject::activate(QObject*, int, int, void**)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007ffff666be42 in QAbstractButton::clicked(bool) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff63f5096 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007ffff63f5bae in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007ffff63f5d24 in QAbstractButton::mouseReleaseEvent(QMouseEvent*)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff6339ea5 in QWidget::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff62fec8c in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff6304b61 in QApplication::notify(QObject*, QEvent*) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff51eec2d in QCoreApplication::notifyInternal(QObject*,
QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff63029e1 in QApplicationPrivate::sendMouseEvent(QWidget*,
QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff6356bbf in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff63589bb in ?? ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007ffff62fec8c in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff6303e56 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff51eec2d in QCoreApplication::notifyInternal(QObject*,
QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff570e25c in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#32 0x00007ffff570f925 in
QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#33 0x00007ffff56f8858 in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#34 0x00007fffe7ba25b0 in ?? ()
   from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
#35 0x00007ffff0aa6e04 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007ffff0aa7048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007ffff0aa70ec in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007ffff523b98c in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#39 0x00007ffff51ed96b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#40 0x00007ffff64e5e0d in QDialog::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00000000004ba8f0 in MainWindow::on_actionDownloadDC_triggered (
    this=0xadeae0) at ../qt-ui/mainwindow.cpp:418
#42 0x000000000058bcd4 in MainWindow::qt_static_metacall (_o=0xadeae0,
    _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0x7fffffffd4a0)
    at .moc/moc_mainwindow.cpp:325
#43 0x000000000058c2fe in MainWindow::qt_metacall (this=0xadeae0,
    _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0x7fffffffd4a0)
    at .moc/moc_mainwindow.cpp:413
#44 0x00007ffff521636d in QMetaObject::activate(QObject*, int, int, void**)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#45 0x00007ffff62f7a52 in QAction::triggered(bool) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007ffff62f9f38 in QAction::activate(QAction::ActionEvent) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#47 0x00007ffff62fa054 in QAction::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007ffff62fec8c in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007ffff6303e56 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007ffff51eec2d in QCoreApplication::notifyInternal(QObject*,
QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#51 0x00007ffff5733921 in QShortcutMap::dispatchEvent(QKeyEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#52 0x00007ffff5733a3c in QShortcutMap::tryShortcutEvent(QObject*,
QKeyEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#53 0x00007ffff6303d48 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#54 0x00007ffff51eec2d in QCoreApplication::notifyInternal(QObject*,
QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#55 0x00007ffff570b33b in
QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*)
() from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#56 0x00007ffff570f905 in
QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#57 0x00007ffff56f8858 in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#58 0x00007fffe7ba25b0 in ?? ()
   from /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
#59 0x00007ffff0aa6e04 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#60 0x00007ffff0aa7048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#61 0x00007ffff0aa70ec in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#62 0x00007ffff523b98c in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#63 0x00007ffff51ed96b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#64 0x00007ffff51f40e1 in QCoreApplication::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#65 0x000000000046aad9 in run_ui () at ../qt-gui.cpp:184
#66 0x000000000045031f in main (argc=1, argv=0x7fffffffdea8) at
../main.cpp:68

This occurred after the download when clicking OK for the new dives to be
processed.
e219bc70f863eaaa9b81ba5abc240975a128c904

First I tried to DL Vyper a couple of times with no success, then Stinger
succeeded on first go but got me this crash.


When I get a DL error at the last of the new dives, I think discarding the
current DL when I hit retry would be appropriate. (I have the first run and
the retry on the DL list. Otherwise, highlight the newly downloaded dives.)

Deselecting some of the downloaded dives enable a tick mark on one of the
already de-selected ones. But this turns out to be that the list is not
properly refreshed.. If I go to different desktop and back, the selection
is done properly. (Initially I thought the first un-tick was not accepted
and redid it due to display not being updated properly.) Anyway, I cannot
really be sure of what would be imported due to the crashing after OK
button.

miika
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20150111/99b1522c/attachment-0001.html>


More information about the subsurface mailing list