Bug 302151 - Quitting with Expert AI vs Expert AI on 10x10 grid causes crash
Summary: Quitting with Expert AI vs Expert AI on 10x10 grid causes crash
Status: RESOLVED FIXED
Alias: None
Product: kjumpingcube
Classification: Applications
Component: general (show other bugs)
Version: 1.2
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Ian Wadham
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-18 21:19 UTC by nn.dm55
Modified: 2012-06-24 02:46 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 1.2 (KDE SC 4.9)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description nn.dm55 2012-06-18 21:19:26 UTC
Application: kjumpingcube (1.2)
KDE Platform Version: 4.6.00 (4.6.0) "release 6"
Qt Version: 4.7.1
Operating System: Linux 2.6.37.6-0.7-default i686
Distribution: "openSUSE 11.4 (i586)"

-- Information about the crash:
- What I was doing when the application crashed:
I set the skill of AI to Expert, set both players to AI, and then set the board size to 10x10. Then I clicked the New button on the toolbar. When the status bar said "Computing next move" I pressed Ctrl and Q simultaneously to make KJumpingCube quit.
- Custom settings of the application:
Two Expert AIs competing on 10x10 board. 
This version of KJumpingCube is compiled from SVN r1294007 on the kjumpingcube folder. My KDE installation is from OpenSUSE RPMs.

The crash can be reproduced every time.

-- Backtrace:
Application: KJumpingCube (kjumpingcube), signal: Segmentation fault
[KCrash Handler]
#7  0xb6be2877 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#8  0x08055619 in KCubeBoxWidget::stoppedThinking (this=0x80c99c8) at /home/nathan/src/kdegames-svn/kjumpingcube/kcubeboxwidget.moc:165
#9  0x08055715 in KCubeBoxWidget::checkComputerplayer (this=0x80c99c8, player=CubeBoxBase<KCubeWidget>::Two) at /home/nathan/src/kdegames-svn/kjumpingcube/kcubeboxwidget.cpp:392
#10 0x080557a4 in KCubeBoxWidget::changePlayer (this=0x80c99c8) at /home/nathan/src/kdegames-svn/kjumpingcube/kcubeboxwidget.cpp:812
#11 0x08055965 in KCubeBoxWidget::checkClick (this=0x80c99c8, row=9, column=5, isClick=false) at /home/nathan/src/kdegames-svn/kjumpingcube/kcubeboxwidget.cpp:371
#12 0x08057daf in KCubeBoxWidget::qt_metacall (this=0x80c99c8, _c=QMetaObject::InvokeMetaMethod, _id=14, _a=0xbfecca80) at /home/nathan/src/kdegames-svn/kjumpingcube/kcubeboxwidget.moc:113
#13 0xb6bd28ad in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#14 0xb6be2a0c in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#15 0x0805aa37 in KCubeWidget::clicked (this=0x813e2c8, _t1=9, _t2=5, _t3=false) at /home/nathan/src/kdegames-svn/kjumpingcube/kcubewidget.moc:96
#16 0x0805ab95 in KCubeWidget::stopHint (this=0x813e2c8) at /home/nathan/src/kdegames-svn/kjumpingcube/kcubewidget.cpp:185
#17 0x0805ab19 in KCubeWidget::qt_metacall (this=0x813e2c8, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfeccb8c) at /home/nathan/src/kdegames-svn/kjumpingcube/kcubewidget.moc:84
#18 0xb6bd28ad in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#19 0xb6be2a0c in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#20 0xb6c31fc5 in QTimer::timeout() () from /usr/lib/libQtCore.so.4
#21 0xb6be9026 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQtCore.so.4
#22 0xb6be13d4 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#23 0xb60d9414 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#24 0xb60e20c7 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#25 0xb71641f1 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#26 0xb6bcbfbe in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#27 0xb6bfd359 in ?? () from /usr/lib/libQtCore.so.4
#28 0xb6bfa022 in ?? () from /usr/lib/libQtCore.so.4
#29 0xb552f509 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#30 0xb552fd10 in ?? () from /lib/libglib-2.0.so.0
#31 0xb552ffce in g_main_context_iteration () from /lib/libglib-2.0.so.0
#32 0xb6bfa74b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#33 0xb618f55a in ?? () from /usr/lib/libQtGui.so.4
#34 0xb6bcb29d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#35 0xb6bcb4c9 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#36 0xb6bcff70 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#37 0xb60d7104 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#38 0x0805a5ae in main (argc=) at /home/nathan/src/kdegames-svn/kjumpingcube/main.cpp:60

Reported using DrKonqi
Comment 1 nn.dm55 2012-06-22 02:58:33 UTC
I think this is probably a duplicate of bug 269781.
Comment 2 Ian Wadham 2012-06-23 05:52:17 UTC
This bug and bug 269781 have the same root cause, I have found, but the crashes are different.

Your way to reproduce the crash has been extremely useful in tracking down the cause.  Thank you very much for that.  Basically, the AI goes on running after the main widget has disappeared.  I am working on a fix for it.
Comment 3 Ian Wadham 2012-06-24 02:46:10 UTC
SVN commit 1302625 by ianw:

Related: bug 269781 BUG: bug 301568 BUG: bug 302151 Fix several crashes by making sure all game activity stops before accepting close().