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