Summary: | Crash when changing the Difficulty or Symmetry directly after startup | ||
---|---|---|---|
Product: | [Applications] ksudoku | Reporter: | Manuel Stol <ManuelStol> |
Component: | general | Assignee: | Ian Wadham <iandw.au> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | kde-games-bugs, kdebugs, moraru69, skreech2 |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 1.0 (KDE SC 4.8.1) |
Description
Manuel Stol
2012-02-19 12:25:05 UTC
I confirm the bug on Kubuntu 11.10, KDE 4.8. The backtrace: Application: KSudoku (ksudoku), signal: Segmentation fault [Current thread is 1 (Thread 0x7f247656e7a0 (LWP 31210))] Thread 2 (Thread 0x7f24641ed700 (LWP 31211)): #0 0x00007f2472a5d773 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f246e079f68 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f246e07a429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f2474129f3e in QEventDispatcherGlib::processEvents (this=0x7f245c0008b0, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424 #4 0x00007f24740fdcf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149 #5 0x00007f24740fdef7 in QEventLoop::exec (this=0x7f24641ecdb0, flags=...) at kernel/qeventloop.cpp:201 #6 0x00007f247401527f in QThread::exec (this=<optimized out>) at thread/qthread.cpp:498 #7 0x00007f24740e0cbf in QInotifyFileSystemWatcherEngine::run (this=0xe83350) at io/qfilesystemwatcher_inotify.cpp:248 #8 0x00007f2474017d05 in QThreadPrivate::start (arg=0xe83350) at thread/qthread_unix.cpp:331 #9 0x00007f2472772efc in start_thread (arg=0x7f24641ed700) at pthread_create.c:304 #10 0x00007f2472a6989d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #11 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f247656e7a0 (LWP 31210)): [KCrash Handler] #6 ksudoku::SymbolItem::setSize (this=0x51, size=26) at ../../../../ksudoku/src/gui/views/valuelistwidget.cpp:63 #7 0x0000000000436740 in ksudoku::ValueListWidget::resizeEvent (this=0xe92790) at ../../../../ksudoku/src/gui/views/valuelistwidget.cpp:165 #8 0x00007f24734fecd0 in QWidget::event (this=0xe92790, event=0x7fff72d69e50) at kernel/qwidget.cpp:8449 #9 0x00007f24738a75b6 in QFrame::event (this=0xe92790, e=0x7fff72d69e50) at widgets/qframe.cpp:557 #10 0x00007f2473acadfb in QGraphicsView::viewportEvent (this=0xe92790, event=0x7fff72d69e50) at graphicsview/qgraphicsview.cpp:2864 #11 0x00007f24740fec88 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<optimized out>, receiver=0xea8640, event=0x7fff72d69e50) at kernel/qcoreapplication.cpp:902 #12 0x00007f24734ae43f in notify_helper (e=0x7fff72d69e50, receiver=0xea8640, this=0xc29080) at kernel/qapplication.cpp:4482 #13 QApplicationPrivate::notify_helper (this=0xc29080, receiver=0xea8640, e=0x7fff72d69e50) at kernel/qapplication.cpp:4458 #14 0x00007f24734b32e1 in QApplication::notify (this=0x7fff72d6b970, receiver=0xea8640, e=0x7fff72d69e50) at kernel/qapplication.cpp:4365 #15 0x00007f2474d8dae6 in KApplication::notify (this=0x7fff72d6b970, receiver=0xea8640, event=0x7fff72d69e50) at ../../kdeui/kernel/kapplication.cpp:311 #16 0x00007f24740feafc in QCoreApplication::notifyInternal (this=0x7fff72d6b970, receiver=0xea8640, event=0x7fff72d69e50) at kernel/qcoreapplication.cpp:787 #17 0x00007f24734fa95f in sendEvent (event=0x7fff72d69e50, receiver=0xea8640) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #18 QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0xea8df0, recursive=true, disableUpdates=<optimized out>) at kernel/qwidget.cpp:7365 #19 0x00007f24734fa8b9 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0xe927e0, recursive=true, disableUpdates=<optimized out>) at kernel/qwidget.cpp:7377 #20 0x00007f24734fa8b9 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0xe918f0, recursive=true, disableUpdates=<optimized out>) at kernel/qwidget.cpp:7377 #21 0x00007f24734fa8b9 in QWidgetPrivate::sendPendingMoveAndResizeEvents (this=0xdc46a0, recursive=true, disableUpdates=<optimized out>) at kernel/qwidget.cpp:7377 #22 0x00007f24734fc92b in QWidgetPrivate::prepareToRender (this=0xec80c0, region=..., renderFlags=...) at kernel/qwidget.cpp:5344 #23 0x00007f24734fcd24 in QWidgetPrivate::render (this=0xec80c0, target=0x7fff72d6a2e0, targetOffset=..., sourceRegion=<optimized out>, renderFlags=..., readyToRender=<optimized out>) at kernel/qwidget.cpp:5597 #24 0x00007f24734fd059 in QWidget::render (this=<optimized out>, target=<optimized out>, targetOffset=<optimized out>, sourceRegion=<optimized out>, renderFlags=<optimized out>) at kernel/qwidget.cpp:5127 #25 0x00007f246a5e5797 in ?? () from /usr/lib/kde4/plugins/styles/oxygen.so #26 0x00007f246a5e6336 in ?? () from /usr/lib/kde4/plugins/styles/oxygen.so #27 0x00007f246a5de318 in ?? () from /usr/lib/kde4/plugins/styles/oxygen.so #28 0x00007f246a5de0d1 in ?? () from /usr/lib/kde4/plugins/styles/oxygen.so #29 0x00007f2474111eba in QMetaObject::activate (sender=0xec7d10, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff72d6a4b0) at kernel/qobject.cpp:3278 #30 0x00007f247387eb11 in QComboBox::currentIndexChanged (this=<optimized out>, _t1=1) at .moc/release-shared/moc_qcombobox.cpp:302 #31 0x00007f247387eb77 in QComboBoxPrivate::_q_emitCurrentIndexChanged (this=0xec80c0, index=...) at widgets/qcombobox.cpp:1269 #32 0x00007f247387ecc9 in QComboBoxPrivate::setCurrentIndex (this=0xec80c0, mi=<optimized out>) at widgets/qcombobox.cpp:2027 #33 0x00007f247387f8f4 in QComboBoxPrivate::_q_itemSelected (this=0xec80c0, item=...) at widgets/qcombobox.cpp:1238 #34 0x00007f2473882d77 in QComboBox::qt_metacall (this=0xec7d10, _c=QMetaObject::InvokeMetaMethod, _id=12, _a=0x7fff72d6a6c0) at .moc/release-shared/moc_qcombobox.cpp:191 #35 0x00007f2474e259f5 in KComboBox::qt_metacall (this=0xec7d10, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7fff72d6a6c0) at ./kcombobox.moc:106 #36 0x00007f2474111eba in QMetaObject::activate (sender=0x10e6730, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff72d6a6c0) at kernel/qobject.cpp:3278 #37 0x00007f2473b20652 in QComboBoxPrivateContainer::itemSelected (this=<optimized out>, _t1=<optimized out>) at .moc/release-shared/moc_qcombobox_p.cpp:213 #38 0x00007f2473879f5a in QComboBoxPrivateContainer::eventFilter (this=0x10e6730, o=0xf7c810, e=0x7fff72d6ad10) at widgets/qcombobox.cpp:687 #39 0x00007f24740fec88 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<optimized out>, receiver=0xf7c810, event=0x7fff72d6ad10) at kernel/qcoreapplication.cpp:902 #40 0x00007f24734ae43f in notify_helper (e=0x7fff72d6ad10, receiver=0xf7c810, this=0xc29080) at kernel/qapplication.cpp:4482 #41 QApplicationPrivate::notify_helper (this=0xc29080, receiver=0xf7c810, e=0x7fff72d6ad10) at kernel/qapplication.cpp:4458 #42 0x00007f24734b3cbb in QApplication::notify (this=<optimized out>, receiver=0xf7c810, e=0x7fff72d6ad10) at kernel/qapplication.cpp:4047 #43 0x00007f2474d8dae6 in KApplication::notify (this=0x7fff72d6b970, receiver=0xf7c810, event=0x7fff72d6ad10) at ../../kdeui/kernel/kapplication.cpp:311 #44 0x00007f24740feafc in QCoreApplication::notifyInternal (this=0x7fff72d6b970, receiver=0xf7c810, event=0x7fff72d6ad10) at kernel/qcoreapplication.cpp:787 #45 0x00007f24734af442 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #46 QApplicationPrivate::sendMouseEvent (receiver=0xf7c810, event=0x7fff72d6ad10, alienWidget=0xf7c810, nativeWidget=0x10e6730, buttonDown=0xf7c810, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3146 #47 0x00007f247352f091 in QETWidget::translateMouseEvent (this=0x10e6730, event=<optimized out>) at kernel/qapplication_x11.cpp:4505 #48 0x00007f247352d94e in QApplication::x11ProcessEvent (this=0x7fff72d6b970, event=0x7fff72d6b530) at kernel/qapplication_x11.cpp:3693 #49 0x00007f24735564a2 in x11EventSourceDispatch (s=0xc2bdd0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #50 0x00007f246e079a5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #51 0x00007f246e07a258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #52 0x00007f246e07a429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #53 0x00007f2474129ed6 in QEventDispatcherGlib::processEvents (this=0xc07a10, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:422 #54 0x00007f247355610e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #55 0x00007f24740fdcf2 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149 #56 0x00007f24740fdef7 in QEventLoop::exec (this=0x7fff72d6b900, flags=...) at kernel/qeventloop.cpp:201 #57 0x00007f2474102789 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064 #58 0x000000000041568a in main (argc=5, argv=0x7fff72d6bd98) at ../../../ksudoku/src/main.cpp:94 Thank you for your very informative report, Manuel. The problem occurs because the value-list widget, which appears at the left of the playing area when you start a puzzle, is created but has no numbers put in it yet. Then, after you change the Difficulty or Symmetry, it gets a resize event and crashes. If you are able to recompile and rebuild KSudoku from source, as I suspect you might be, there was a fix to valuelistwidget.cpp on trunk by nlecureuil, SVN revision 1277487 on 1 Feb 2012. I think that might cure the problem. Unfortunately I cannot reproduce the crash, whether I include the fix or not, maybe because I am using KDE 4.7 and Qt 4.7 libraries. If you can try the fix, please let me know how you go. If it works, it should be backported to the KDE 4.8 branch. The patch fixes this crash on my system I have kde 4.8 installed. Thanks, Michael. I also found that my other machine has KDE 4.8 and Qt 4.8 libraries, so I was able to test for the crash and reproduce it. The patch worked fine and so did some other possible fixes, such as not iterating over an empty list. So I will proceed to implement a fix in the next couple of days and backport it to the 4.8 branch in time for the KDE SC 4.8.1 release on 6 March. SVN commit 1281829 by ianw: Related: bug 294420 FIXED-IN: 4.8.1 Make the value-list widget non-empty at creation time, so that KSudoku will not crash when there is a resize event before starting the first puzzle. M +1 -1 valuelistwidget.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1281829 SVN commit 1281832 by ianw: Related: bug 294420 Backport to 4.8.1. Make the value-list widget non-empty at creation time, so that KSudoku will not crash when there is a resize event before starting the first puzzle. M +1 -1 valuelistwidget.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1281832 *** Bug 219385 has been marked as a duplicate of this bug. *** *** Bug 215054 has been marked as a duplicate of this bug. *** |