<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Am 20.10.2017 um 15:03 schrieb Stefan Fuchs:<br>
    <blockquote type="cite"
      cite="mid:d5de73a0-f762-0eef-ee02-531bc81af222@gmx.de">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      Am 20.10.2017 um 12:17 schrieb Willem Ferguson:<br>
      <blockquote type="cite"
        cite="mid:c41d2f79-9ba8-7fa6-bebe-800ffecaf460@zoology.up.ac.za">On
        20/10/2017 11:19, Stefan Fuchs wrote: <br>
        <blockquote type="cite">That's ugly. I found s.th. similar this
          morning also when deleting a cylinder but only in the merged
          dive I played with. <br>
          Could come from my changes. I found already one bug and fixed
          it (see PRs) but that was not all - crash still there. <br>
        </blockquote>
        <br>
        Start Subsurface <br>
        <br>
        Select file -> New logbook <br>
        <br>
        Select Log -> Plan dive <br>
        <br>
        Mine starts with a single D12 AIR twinset being defined and a 20
        min dive at 15m. <br>
        <br>
        Add an AL80 cylinder with EAN50 <br>
        <br>
        In nth Dive points table change the dive to 60 minutes at 20m
        (results in awful profile) <br>
        <br>
        Delete EAN50 cylinder <br>
        <br>
        Crash <br>
        <br>
      </blockquote>
      Odd. Usually I'm the one seeing all the crashes with my MXE
      Windows build. But not this one.<br>
      Any new findings?<br>
      Can you provide a screenshot of the full planner window with the
      setup?<br>
      <br>
      Meanwhile I will try another build flavor and then also Linux.<br>
    </blockquote>
    Ok, I have it in front of me now:<br>
    Seems to be nothing were we or I did really change s.th. during the
    last days. But for sure what I did is that I implemented a few more
    triggers for updates between the cylinder table and everything else
    in the planner. That may have revealed an issue.<br>
    <br>
    BT attached below.<br>
    <br>
    From my limited experience:<br>
    Is this s.th. coming from a race condition?<br>
    We do check in planner .c update_cylinder_pressure for "if (!cyl)",
    this doesn't "fail" and then we crash a few lines later doing
    "cyl->gas_used.mliter += gas_used.mliter;"<br>
    <br>
    <br>
    (gdb) run<br>
    Starting program:
    /home/stefan/Entwicklung/Subsurface/subsurface/build/subsurface <br>
    [Thread debugging using libthread_db enabled]<br>
    Using host libthread_db library
    "/lib/x86_64-linux-gnu/libthread_db.so.1".<br>
    [New Thread 0x7fffe58a0700 (LWP 14117)]<br>
    [New Thread 0x7fffd9c4b700 (LWP 14118)]<br>
    [New Thread 0x7fffd944a700 (LWP 14119)]<br>
    [New Thread 0x7fffd895b700 (LWP 14120)]<br>
    [New Thread 0x7fffcb694700 (LWP 14121)]<br>
    [New Thread 0x7fffc8bc1700 (LWP 14122)]<br>
    [New Thread 0x7fffc10b8700 (LWP 14123)]<br>
    <br>
    Thread 1 "subsurface" received signal SIGSEGV, Segmentation fault.<br>
    0x000000000077586b in update_cylinder_pressure (d=0xc94080
    <displayed_dive>, old_depth=0, new_depth=15000, duration=49, <br>
        sac=20000, cyl=0xbc0cd8, in_deco=false) at
    /home/stefan/Entwicklung/Subsurface/subsurface/core/planner.c:243<br>
    243        cyl->gas_used.mliter += gas_used.mliter;<br>
    (gdb) bt<br>
    #0  0x000000000077586b in update_cylinder_pressure (d=0xc94080
    <displayed_dive>, old_depth=0, new_depth=15000, duration=49, <br>
        sac=20000, cyl=0xbc0cd8, in_deco=false) at
    /home/stefan/Entwicklung/Subsurface/subsurface/core/planner.c:243<br>
    #1  0x0000000000775d2d in create_dive_from_plan (diveplan=0xcd1580,
    dive=0xc94080 <displayed_dive>, track_gas=true)<br>
        at
    /home/stefan/Entwicklung/Subsurface/subsurface/core/planner.c:349<br>
    #2  0x0000000000776ae0 in plan (diveplan=0xcd1580, dive=0xc94080
    <displayed_dive>, timestep=60, <br>
        decostoptable=0x7fffffffc440, cached_datap=0x7fffffffc400,
    is_planner=true, show_disclaimer=false)<br>
        at
    /home/stefan/Entwicklung/Subsurface/subsurface/core/planner.c:693<br>
    #3  0x0000000000710038 in
    DivePlannerPointsModel::createTemporaryPlan (this=0xcd1570)<br>
        at
/home/stefan/Entwicklung/Subsurface/subsurface/qt-models/diveplannermodel.cpp:922<br>
    #4  0x00000000006d5869 in ProfileWidget2::plotDive (this=0x1350db0,
    d=0x0, force=true)<br>
        at
/home/stefan/Entwicklung/Subsurface/subsurface/profile-widget/profilewidget2.cpp:587<br>
    #5  0x00000000006d456b in ProfileWidget2::replot (this=0x1350db0,
    d=0x0)<br>
        at
/home/stefan/Entwicklung/Subsurface/subsurface/profile-widget/profilewidget2.cpp:397<br>
    #6  0x0000000000704cd0 in ProfileWidget2::qt_static_metacall
    (_o=0x1350db0, _c=QMetaObject::InvokeMetaMethod, _id=17, <br>
        _a=0x7fffffffc970) at
/home/stefan/Entwicklung/Subsurface/subsurface/build/profile-widget/moc_profilewidget2.cpp:236<br>
    #7  0x00007ffff546dd2a in QMetaObject::activate(QObject*, int, int,
    void**) ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5<br>
    #8  0x00007ffff54e9e2c in
    QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex
    const&, QVector<int> const&) ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5<br>
    #9  0x000000000070e33b in DivePlannerPointsModel::emitDataChanged
    (this=0xcd1570)<br>
        at
/home/stefan/Entwicklung/Subsurface/subsurface/qt-models/diveplannermodel.cpp:419<br>
    #10 0x000000000070dd39 in DivePlannerPointsModel::cylinderRenumber
    (this=0xcd1570, mapping=0x7fffffffcb00)<br>
        at
/home/stefan/Entwicklung/Subsurface/subsurface/qt-models/diveplannermodel.cpp:363<br>
    #11 0x000000000070b20e in CylindersModel::remove (this=0x1485350,
    index=...)<br>
        at
/home/stefan/Entwicklung/Subsurface/subsurface/qt-models/cylindermodel.cpp:589<br>
    #12 0x000000000073b3bc in CylindersModel::qt_static_metacall
    (_o=0x1485350, _c=QMetaObject::InvokeMetaMethod, _id=0, <br>
        _a=0x7fffffffccc0) at
/home/stefan/Entwicklung/Subsurface/subsurface/build/qt-models/moc_cylindermodel.cpp:74<br>
    #13 0x00007ffff546dd2a in QMetaObject::activate(QObject*, int, int,
    void**) ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5<br>
    #14 0x00007ffff68e07f5 in QAbstractItemView::clicked(QModelIndex
    const&) ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #15 0x00007ffff68e47d3 in
    QAbstractItemView::mouseReleaseEvent(QMouseEvent*) ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #16 0x00007ffff66cafc8 in QWidget::event(QEvent*) () from
    /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #17 0x00007ffff67c9b8e in QFrame::event(QEvent*) () from
    /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #18 0x00007ffff68ef6db in QAbstractItemView::viewportEvent(QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #19 0x00007ffff543f172 in
    QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*,
    QEvent*) ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5<br>
    #20 0x00007ffff668803c in
    QApplicationPrivate::notify_helper(QObject*, QEvent*) ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #21 0x00007ffff668dc19 in QApplication::notify(QObject*, QEvent*) ()
    from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #22 0x00007ffff543f38b in QCoreApplication::notifyInternal(QObject*,
    QEvent*) ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5<br>
    #23 0x00007ffff668cb32 in
    QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*,
    QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #24 0x00007ffff66e55bb in ?? () from
    /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #25 0x00007ffff66e7b7b in ?? () from
    /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #26 0x00007ffff668805c in
    QApplicationPrivate::notify_helper(QObject*, QEvent*) ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #27 0x00007ffff668d516 in QApplication::notify(QObject*, QEvent*) ()
    from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5<br>
    #28 0x00007ffff543f38b in QCoreApplication::notifyInternal(QObject*,
    QEvent*) ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5<br>
    #29 0x00007ffff5d074e1 in
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
    ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5<br>
    #30 0x00007ffff5d091a5 in
QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5<br>
    #31 0x00007ffff5cecf08 in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
    ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5<br>
    #32 0x00007fffe7e27200 in ?? () from
    /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5<br>
    #33 0x00007ffff290c197 in g_main_context_dispatch () from
    /lib/x86_64-linux-gnu/libglib-2.0.so.0<br>
    #34 0x00007ffff290c3f0 in ?? () from
    /lib/x86_64-linux-gnu/libglib-2.0.so.0<br>
    #35 0x00007ffff290c49c in g_main_context_iteration () from
    /lib/x86_64-linux-gnu/libglib-2.0.so.0<br>
    #36 0x00007ffff54957cf in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
    ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5<br>
    #37 0x00007ffff543cb4a in
    QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()<br>
       from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5<br>
    #38 0x00007ffff5444bec in QCoreApplication::exec() () from
    /usr/lib/x86_64-linux-gnu/libQt5Core.so.5<br>
    #39 0x000000000059825b in run_ui () at
/home/stefan/Entwicklung/Subsurface/subsurface/subsurface-desktop-helper.cpp:46<br>
    #40 0x0000000000596fe2 in main (argc=1, argv=0x7fffffffde58)<br>
        at
/home/stefan/Entwicklung/Subsurface/subsurface/subsurface-desktop-main.cpp:115<br>
    (gdb) <br>
    <br>
    <br>
    <br>
    <div class="moz-signature">-- <br>
      <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
      <title></title>
      <meta name="GENERATOR" content="OpenOffice.org 3.3 (Win32)">
      <meta name="CREATED" content="0;0">
      <meta name="CHANGEDBY" content="Stefan Fuchs">
      <meta name="CHANGED" content="20120503;23115492">
      <style type="text/css">
        <!--
                P { color: #000000 }
        -->
        </style>
      <p>Stefan Fuchs<br>
        E-Mail: <a href="mailto:sfuchs@gmx.de">sfuchs@gmx.de</a></p>
    </div>
  </body>
</html>