D23404: Revamp solver memory management
Wolfgang Bauer
noreply at phabricator.kde.org
Wed Aug 28 12:44:22 BST 2019
wbauer added a comment.
I gave it a try and it does seem to fix the crashes from BUG 395624 here.
I did get another crash while playing Grandfather's Clock now though, no idea if it is related to this change or not.
Thread 1 (Thread 0x7f655a167900 (LWP 11734)):
[KCrash Handler]
#6 MemoryManager<19>::BLOCK<TTree<19> >::getItem (this=<optimized out>) at /usr/src/debug/kpat5-19.08.0-lp151.105.1.x86_64/patsolve/memory.h:90
#7 MemoryManager<19>::new_tree (this=<optimized out>) at /usr/src/debug/kpat5-19.08.0-lp151.105.1.x86_64/patsolve/memory.h:183
#8 Solver<9ul>::pack_position (this=this at entry=0x55dd50a0bf10) at /usr/src/debug/kpat5-19.08.0-lp151.105.1.x86_64/patsolve/patsolve.cpp:209
#9 0x000055dd4dfb4874 in Solver<9ul>::insert (this=this at entry=0x55dd50a0bf10, cluster=cluster at entry=0x7ffc8ac1b8cc, d=0, node=node at entry=0x7ffc8ac1b8d0) at /usr/src/debug/kpat5-19.08.0-lp151.105.1.x86_64/patsolve/patsolve.cpp:854
#10 0x000055dd4dfb4a2e in Solver<9ul>::new_position (this=this at entry=0x55dd50a0bf10, parent=parent at entry=0x0, m=m at entry=0x7ffc8ac1b920) at /usr/src/debug/kpat5-19.08.0-lp151.105.1.x86_64/patsolve/patsolve.cpp:881
#11 0x000055dd4dfc25b6 in Solver<9ul>::doit (this=0x55dd50a0bf10) at /usr/src/debug/kpat5-19.08.0-lp151.105.1.x86_64/patsolve/patsolve.cpp:472
#12 0x000055dd4dfc2647 in Solver<9ul>::patsolve (this=0x55dd50a0bf10, _max_positions=<optimized out>) at /usr/src/debug/kpat5-19.08.0-lp151.105.1.x86_64/patsolve/patsolve.cpp:767
#13 0x000055dd4df87a51 in DealerScene::isGameLost (this=0x55dd5051eb50) at /usr/src/debug/kpat5-19.08.0-lp151.105.1.x86_64/dealer.cpp:1722
#14 0x000055dd4df8f0a6 in DealerScene::takeState (this=0x55dd5051eb50) at /usr/src/debug/kpat5-19.08.0-lp151.105.1.x86_64/dealer.cpp:1313
#15 0x000055dd4df932fc in DealerScene::animationDone (this=0x55dd5051eb50) at /usr/src/debug/kpat5-19.08.0-lp151.105.1.x86_64/dealer.cpp:1529
#16 0x00007f655635944f in QtPrivate::QSlotObjectBase::call (a=0x7ffc8ac1bba0, r=0x55dd5051eb50, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#17 QMetaObject::activate (sender=0x55dd5051eb50, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3787
#18 0x00007f655635944f in QtPrivate::QSlotObjectBase::call (a=0x7ffc8ac1bca0, r=0x55dd5051eb50, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#19 QMetaObject::activate (sender=0x55dd504af590, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3787
#20 0x00007f655635944f in QtPrivate::QSlotObjectBase::call (a=0x7ffc8ac1bdf0, r=0x55dd5048a970, this=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#21 QMetaObject::activate (sender=sender at entry=0x55dd504b13d0, signalOffset=<optimized out>, local_signal_index=local_signal_index at entry=0, argv=<optimized out>, argv at entry=0x7ffc8ac1bdf0) at kernel/qobject.cpp:3787
#22 0x00007f65563599f7 in QMetaObject::activate (sender=sender at entry=0x55dd504b13d0, m=m at entry=0x7f65567dfb60 <QTimer::staticMetaObject>, local_signal_index=local_signal_index at entry=0, argv=argv at entry=0x7ffc8ac1bdf0) at kernel/qobject.cpp:3658
#23 0x00007f6556365ff7 in QTimer::timeout (this=this at entry=0x55dd504b13d0, _t1=...) at .moc/moc_qtimer.cpp:205
#24 0x00007f6556366358 in QTimer::timerEvent (this=0x55dd504b13d0, e=<optimized out>) at kernel/qtimer.cpp:255
#25 0x00007f6556359e4b in QObject::event (this=0x55dd504b13d0, e=<optimized out>) at kernel/qobject.cpp:1282
#26 0x00007f655781dfac in QApplicationPrivate::notify_helper (this=this at entry=0x55dd502837d0, receiver=receiver at entry=0x55dd504b13d0, e=e at entry=0x7ffc8ac1c160) at kernel/qapplication.cpp:3740
#27 0x00007f6557825520 in QApplication::notify (this=0x7ffc8ac1c500, receiver=0x55dd504b13d0, e=0x7ffc8ac1c160) at kernel/qapplication.cpp:3486
#28 0x00007f6556328958 in QCoreApplication::notifyInternal2 (receiver=0x55dd504b13d0, event=0x7ffc8ac1c160) at kernel/qcoreapplication.cpp:1065
#29 0x00007f65563859d9 in QTimerInfoList::activateTimers (this=0x55dd502eed80) at kernel/qtimerinfo_unix.cpp:643
#30 0x00007f65563861d9 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183
#31 idleTimerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:230
#32 0x00007f654f395e87 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#33 0x00007f654f396230 in ?? () from /usr/lib64/libglib-2.0.so.0
#34 0x00007f654f3962bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#35 0x00007f655638654f in QEventDispatcherGlib::processEvents (this=0x55dd50306160, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#36 0x00007f6556326b6a in QEventLoop::exec (this=this at entry=0x7ffc8ac1c3b0, flags=..., flags at entry=...) at kernel/qeventloop.cpp:225
#37 0x00007f655632fe30 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1373
#38 0x000055dd4df82670 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kpat5-19.08.0-lp151.105.1.x86_64/main.cpp:346
[Inferior 1 (process 11734) detached]
REPOSITORY
R410 KPatience
REVISION DETAIL
https://phabricator.kde.org/D23404
To: fabiank, #kde_games, aacid, shlomif
Cc: wbauer, kde-games-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-games-devel/attachments/20190828/37383970/attachment.html>
More information about the kde-games-devel
mailing list