https://bugs.kde.org/show_bug.cgi?id=477925

            Bug ID: 477925
           Summary: Kpat Spider crashes after dealing cards then holding
                    down ctrl-z
    Classification: Applications
           Product: kpat
           Version: 24.01.80
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: co...@kde.org
          Reporter: darinsmil...@gmail.com
                CC: kde-games-b...@kde.org
  Target Milestone: ---

SUMMARY
***
NOTE: If you are reporting a crash, please try to attach a backtrace with debug
symbols.
See
https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***


STEPS TO REPRODUCE
1. Launch a spider game in Kpat
2. Click the card deck a few times to distribute the next set of cards.
3. Hold Ctrl-z to undo the distributions and kpat will crash.

OBSERVED RESULT
kpat crashes

EXPECTED RESULT
Retore cards to state of the previous move.

SOFTWARE/OS VERSIONS
Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.90.0
KDE Frameworks Version: 5.246.0
Qt Version: 6.6.0
Kernel Version: 6.2.0-37-generic (64-bit)
Graphics Platform: X11
Processors: 16 × AMD Ryzen 7 5800X 8-Core Processor
Memory: 31.2 GiB of RAM
Graphics Processor: AMD Radeon RX 6750 XT
Manufacturer: Gigabyte Technology Co., Ltd.
Product Name: X570S AORUS ELITE AX
System Version: -CF

ADDITIONAL INFORMATION
Older versions (23.08.3) of kpat do not crash when holding ctrl-z.

gdb output:

ASSERT failure in QList<T>::insert: "index out of range", file
/usr/include/x86_64-linux-gnu/qt6/QtCore/qlist.h, line 868

Thread 1 "kpat" received signal SIGABRT, Aborted.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140737237797568) at
./nptl/pthread_kill.c:44
Download failed: Invalid argument.  Continuing without source file
./nptl/./nptl/pthread_kill.c.
44      ./nptl/pthread_kill.c: No such file or directory.
(gdb) backtrace
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737237797568)
at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=140737237797568) at
./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=140737237797568, signo=signo@entry=6) at
./nptl/pthread_kill.c:89
#3  0x00007ffff5842476 in __GI_raise (sig=sig@entry=6) at
../sysdeps/posix/raise.c:26
#4  0x00007ffff58287f3 in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007ffff64d6fb7 in qAbort () at ./src/corelib/global/qglobal.cpp:161
#6  0x00007ffff64d2465 in qt_message_fatal<QString&> (message=..., context=...)
at ./src/corelib/global/qlogging.cpp:2003
#7  qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef
__va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, context=...,
msg=<optimized out>, 
    ap=ap@entry=0x7fffffffcff0) at ./src/corelib/global/qlogging.cpp:378
#8  0x00007ffff64d79e3 in QMessageLogger::fatal (this=<optimized out>,
msg=<optimized out>) at ./src/corelib/global/qlogging.cpp:901
#9  0x00007ffff64a5968 in qt_assert_x (where=where@entry=0x7ffff7c2a4c0
"QList<T>::insert", what=what@entry=0x7ffff7c2a40b "index out of range", 
    file=file@entry=0x7ffff7c299f0
"/usr/include/x86_64-linux-gnu/qt6/QtCore/qlist.h", line=line@entry=868) at
./src/corelib/global/qassert.cpp:77
#10 0x00007ffff7c01527 in QList<KCard*>::emplace<KCard*&> (this=<optimized
out>, i=<optimized out>) at
/usr/include/x86_64-linux-gnu/qt6/QtCore/qlist.h:868
#11 QList<KCard*>::emplace<KCard*&> (i=9, this=0x555555db29b8) at
/usr/include/x86_64-linux-gnu/qt6/QtCore/qlist.h:866
#12 QList<KCard*>::insert (t=<optimized out>, i=9, this=0x555555db29b8) at
/usr/include/x86_64-linux-gnu/qt6/QtCore/qlist.h:472
#13 KCardPile::insert (this=<optimized out>, index=9, card=0x555555ea14d0) at
./src/libkcardgame/kcardpile.cpp:384
#14 0x0000555555592247 in DealerScene::undoOrRedo (this=<optimized out>,
undo=<optimized out>) at ./src/dealer.cpp:1083
#15 0x00007ffff6426b9e in QtPrivate::QSlotObjectBase::call (a=<optimized out>,
r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized
out>, a=<optimized out>)
    at ./src/corelib/kernel/qobjectdefs_impl.h:433
#16 doActivate<false> (sender=0x555555b074b0, signal_index=7,
argv=0x7fffffffd360) at ./src/corelib/kernel/qobject.cpp:4021
#17 0x00007ffff6c3b406 in QAction::triggered (this=this@entry=0x555555b074b0,
_t1=<optimized out>) at
./obj-x86_64-linux-gnu/src/gui/Gui_autogen/include/moc_qaction.cpp:642
#18 0x00007ffff6c3f164 in QAction::activate (this=0x555555b074b0,
event=<optimized out>) at ./src/gui/kernel/qaction.cpp:1102
#19 0x00007ffff6c3f2a8 in QAction::event (e=0x7fffffffd5a0,
this=0x555555b074b0) at ./src/gui/kernel/qaction.cpp:1044
#20 QAction::event (this=0x555555b074b0, e=0x7fffffffd5a0) at
./src/gui/kernel/qaction.cpp:1027
#21 0x00007ffff75f079b in QApplicationPrivate::notify_helper (this=<optimized
out>, receiver=0x555555b074b0, e=0x7fffffffd5a0) at
./src/widgets/kernel/qapplication.cpp:3290
#22 0x00007ffff645e828 in QCoreApplication::notifyInternal2
(receiver=0x555555b074b0, event=event@entry=0x7fffffffd5a0) at
./src/corelib/kernel/qcoreapplication.cpp:1118
#23 0x00007ffff645e86d in QCoreApplication::sendEvent (receiver=<optimized
out>, event=event@entry=0x7fffffffd5a0) at
./src/corelib/kernel/qcoreapplication.cpp:1536
#24 0x00007ffff6c4d3b3 in QShortcutMap::dispatchEvent (this=<optimized out>,
e=0x7fffffffd690) at ./src/gui/kernel/qshortcutmap.cpp:636
#25 0x00007ffff6c4dacb in QShortcutMap::tryShortcut (this=0x555555731158,
e=0x7fffffffd690) at ./src/gui/kernel/qshortcutmap.cpp:310
#26 0x00007ffff694dc0e in QWindowSystemInterface::handleShortcutEvent
(window=<optimized out>, timestamp=<optimized out>, keyCode=90, modifiers=...,
nativeScanCode=52, 
    nativeVirtualKey=122, nativeModifiers=20, text=..., autorepeat=false,
count=1) at ./src/gui/kernel/qwindowsysteminterface.cpp:449
#27 0x00007ffff68ef60a in QGuiApplicationPrivate::processKeyEvent
(e=0x555555c23570) at ./src/gui/kernel/qguiapplication.cpp:2422
#28 0x00007ffff69549ac in QWindowSystemInterface::sendWindowSystemEvents
(flags=flags@entry=...) at ./src/gui/kernel/qwindowsysteminterface.cpp:1109
#29 0x00007ffff0dc6a1e in xcbSourceDispatch (source=<optimized out>) at
./src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:57
#30 0x00007ffff454ad3b in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007ffff45a0258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007ffff45483e3 in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff625de60 in QEventDispatcherGlib::processEvents
(this=0x5555557ce6f0, flags=...) at
./src/corelib/kernel/qeventdispatcher_glib.cpp:393
#34 0x00007ffff6460a5b in QEventLoop::exec (this=this@entry=0x7fffffffda30,
flags=..., flags@entry=...) at ./src/corelib/global/qflags.h:34
#35 0x00007ffff646268c in QCoreApplication::exec () at
./src/corelib/global/qflags.h:74
#36 0x00007ffff68e9940 in QGuiApplication::exec () at
./src/gui/kernel/qguiapplication.cpp:1921
#37 0x00007ffff75e8c89 in QApplication::exec () at
./src/widgets/kernel/qapplication.cpp:2569
#38 0x00005555555854dd in main (argc=<optimized out>, argv=<optimized out>) at
./src/main.cpp:344

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to