<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>