Bug 310017 - Knights crashes when undo a step and redo the same
Summary: Knights crashes when undo a step and redo the same
Status: RESOLVED FIXED
Alias: None
Product: knights
Classification: Applications
Component: general (other bugs)
Version First Reported In: 2.5.0
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Miha Čančula
URL:
Keywords:
: 325310 326779 327000 328283 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-11-13 11:45 UTC by srikkanth87
Modified: 2018-08-21 21:59 UTC (History)
7 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 2.6
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description srikkanth87 2012-11-13 11:45:43 UTC
Application: knights (2.5.0)
KDE Platform Version: 4.9.2
Qt Version: 4.8.3
Operating System: Linux 3.6.6-1.fc17.i686 i686
Distribution: "Fedora release 17 (Beefy Miracle)"

-- Information about the crash:
When knights (gnuchess) server is taking too much time for the step i have reverted my previous step to continue which caused crash

The crash can be reproduced some of the time.

-- Backtrace:
Application: Knights (knights), signal: Segmentation fault
Using host libthread_db library "/lib/libthread_db.so.1".
[KCrash Handler]
#7  0x080612e4 in Knights::Piece::pieceType (this=0x0) at /usr/src/debug/knights-2.5.0/src/core/piece.cpp:187
#8  0x0807460e in Knights::ChessRules::changeNotation (this=0x8e628d0, move=0xbf9b0c28, notation=Knights::Move::Algebraic, color=Knights::White) at /usr/src/debug/knights-2.5.0/src/rules/chessrules.cpp:784
#9  0x0807b3bd in Knights::ChessRules::checkSpecialFlags (this=0x8e628d0, move=0xbf9b0c28, color=Knights::White) at /usr/src/debug/knights-2.5.0/src/rules/chessrules.cpp:371
#10 0x0808bc8a in Knights::Manager::processMove (this=this@entry=0x8bf4718, move=...) at /usr/src/debug/knights-2.5.0/src/gamemanager.cpp:822
#11 0x0808be8e in Knights::Manager::moveByProtocol (this=0x8bf4718, move=...) at /usr/src/debug/knights-2.5.0/src/gamemanager.cpp:454
#12 0x471f1bce in QMetaObject::activate (sender=0x8d91a70, m=0x80a4314, local_signal_index=0, argv=0xbf9b0d58) at kernel/qobject.cpp:3547
#13 0x0805c1d8 in Knights::Protocol::pieceMoved (this=0x8d91a70, _t1=...) at /usr/src/debug/knights-2.5.0/src/moc_protocol.cpp:227
#14 0x0806ac0c in Knights::XBoardProtocol::parseLine (this=0x8d91a70, line=...) at /usr/src/debug/knights-2.5.0/src/proto/xboardprotocol.cpp:160
#15 0x080625e5 in Knights::TextProtocol::readFromDevice (this=0x8d91a70) at /usr/src/debug/knights-2.5.0/src/proto/textprotocol.cpp:44
#16 0x471f1bce in QMetaObject::activate (sender=0x8d908e0, m=0x4733cf98, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3547
#17 0x47240826 in QIODevice::readyRead (this=0x8d908e0) at .moc/release-shared/moc_qiodevice.cpp:104
#18 0x4716a019 in QProcessPrivate::_q_canReadStandardOutput (this=0x8d90ad0) at io/qprocess.cpp:911
#19 0x4716a58f in qt_static_metacall (_a=0xbf9b10f8, _id=9, _o=0x8d908e0, _c=<optimized out>) at .moc/release-shared/moc_qprocess.cpp:83
#20 QProcess::qt_static_metacall (_o=0x8d908e0, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0xbf9b10f8) at .moc/release-shared/moc_qprocess.cpp:68
#21 0x471f1bce in QMetaObject::activate (sender=0x8c32438, m=0x4733d9b8, local_signal_index=0, argv=0xbf9b10f8) at kernel/qobject.cpp:3547
#22 0x472431a6 in QSocketNotifier::activated (this=0x8c32438, _t1=13) at .moc/release-shared/moc_qsocketnotifier.cpp:102
#23 0x471f8847 in QSocketNotifier::event (this=0x8c32438, e=0xbf9b1534) at kernel/qsocketnotifier.cpp:317
#24 0x48df1fac in QApplicationPrivate::notify_helper (this=0x8b1a8d8, receiver=0x8c32438, e=0xbf9b1534) at kernel/qapplication.cpp:4557
#25 0x48df6a6f in QApplication::notify (this=0xbf9b1534, receiver=0x8c32438, e=0xbf9b1534) at kernel/qapplication.cpp:3939
#26 0x49995fe2 in KApplication::notify (this=0xbf9b1844, receiver=0x8c32438, event=0xbf9b1534) at /usr/src/debug/kdelibs-4.9.2/kdeui/kernel/kapplication.cpp:311
#27 0x471d94de in QCoreApplication::notifyInternal (this=0xbf9b1844, receiver=0x8c32438, event=0xbf9b1534) at kernel/qcoreapplication.cpp:915
#28 0x4720b218 in sendEvent (event=0xbf9b1534, receiver=<optimized out>) at kernel/qcoreapplication.h:231
#29 socketNotifierSourceDispatch (source=source@entry=0x8b1b300) at kernel/qeventdispatcher_glib.cpp:110
#30 0x449920bb in g_main_dispatch (context=0x8b1a380, context@entry=0x8b1a348) at gmain.c:2539
#31 g_main_context_dispatch (context=context@entry=0x8b1a380) at gmain.c:3075
#32 0x44992460 in g_main_context_iterate (context=context@entry=0x8b1a380, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3146
#33 0x44992542 in g_main_context_iteration (context=0x8b1a380, may_block=1) at gmain.c:3207
#34 0x4720ba9f in QEventDispatcherGlib::processEvents (this=0x8af8d78, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#35 0x48ea452b in QGuiEventDispatcherGlib::processEvents (this=0x8af8d78, flags=...) at kernel/qguieventdispatcher_glib.cpp:207
#36 0x471d7f7d in QEventLoop::processEvents (this=this@entry=0xbf9b1778, flags=...) at kernel/qeventloop.cpp:149
#37 0x471d8279 in QEventLoop::exec (this=0xbf9b1778, flags=...) at kernel/qeventloop.cpp:204
#38 0x471dd7bb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#39 0x48defe25 in QApplication::exec () at kernel/qapplication.cpp:3818
#40 0x0805ae7e in main (argc=5, argv=0xbf9b1914) at /usr/src/debug/knights-2.5.0/src/main.cpp:79

Reported using DrKonqi
Comment 1 Jekyll Wu 2013-09-25 18:43:04 UTC
*** Bug 325310 has been marked as a duplicate of this bug. ***
Comment 2 Jekyll Wu 2013-10-28 14:28:52 UTC
*** Bug 326779 has been marked as a duplicate of this bug. ***
Comment 3 Jekyll Wu 2013-11-01 16:01:02 UTC
*** Bug 327000 has been marked as a duplicate of this bug. ***
Comment 4 Jekyll Wu 2013-12-01 15:27:27 UTC
*** Bug 328283 has been marked as a duplicate of this bug. ***
Comment 5 Alexander Semke 2018-08-21 21:58:37 UTC
Git commit e44be74fc7505555e3b25e09a94ddfe1b0ce4bc5 by Alexander Semke.
Committed on 21/08/2018 at 21:56.
Pushed by asemke into branch 'master'.

Added a null-pointer check to handle invalid/non-available pieces in ChessRules::changeNotation().
FIXED-IN: 2.6

M  +5    -4    src/rules/chessrules.cpp

https://commits.kde.org/knights/e44be74fc7505555e3b25e09a94ddfe1b0ce4bc5
Comment 6 Alexander Semke 2018-08-21 21:59:13 UTC
The problem is not reproducible but I added an additional check in order not to crash once we run into such situation again.