Bug 312267 - Crash of Palapeli at the end of the puzzle's reconstitution
Summary: Crash of Palapeli at the end of the puzzle's reconstitution
Status: RESOLVED WORKSFORME
Alias: None
Product: palapeli
Classification: Applications
Component: general (show other bugs)
Version: 2.0
Platform: Mint (Ubuntu based) Linux
: NOR crash
Target Milestone: ---
Assignee: Stefan Majewsky
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-12-27 15:13 UTC by Pichouett
Modified: 2021-01-31 04:33 UTC (History)
7 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pichouett 2012-12-27 15:13:38 UTC
Application: palapeli (1.2)
KDE Platform Version: 4.9.4
Qt Version: 4.8.2
Operating System: Linux 3.2.0-35-generic x86_64
Distribution: Ubuntu 12.04.1 LTS

-- Information about the crash:
- What I was doing when the application crashed:
I was simply playing with Palapeli and when I moved the last piece of the puzzle to the correct position, Palapeli crashed unexpectedly.
Three others programs were opened in the same time: VLC, Chrome and Firefox.

-- Backtrace:
Application: Palapeli (palapeli), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f60ab063780 (LWP 21535))]

Thread 3 (Thread 0x7f60972c4700 (LWP 21537)):
#0  0x00007f60a7fa4303 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f60a4898036 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f60a489849a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f60972c998b in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#4  0x00007f60a48b99e5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f60a515ce9a in start_thread (arg=0x7f60972c4700) at pthread_create.c:308
#6  0x00007f60a7fafcbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f6096ac3700 (LWP 21538)):
#0  0x00007f60a7fa4303 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f60a4898036 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f60a489849a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f609e41b406 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007f60a48b99e5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f60a515ce9a in start_thread (arg=0x7f6096ac3700) at pthread_create.c:308
#6  0x00007f60a7fafcbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f60ab063780 (LWP 21535)):
[KCrash Handler]
#6  0x0000000000000080 in ?? ()
#7  0x00007f60a96d4fe4 in QObject::disconnect (sender=0x364fc60, signal=0x0, receiver=0x25043f0, method=0x0) at kernel/qobject.cpp:2891
#8  0x0000000000431eb9 in Palapeli::MovePieceInteractor::stopInteraction (this=0x25043f0, event=...) at ../../../palapeli/src/engine/interactors.cpp:129
#9  0x0000000000430a4a in setInactive (this=0x2504400) at ../../../palapeli/src/engine/interactor.cpp:122
#10 Palapeli::Interactor::setInactive (this=0x2504400) at ../../../palapeli/src/engine/interactor.cpp:117
#11 0x000000000043357f in Palapeli::InteractorManager::handleEventCommon (this=<optimized out>, pEvent=..., interactorData=..., unhandledButtons=...) at ../../../palapeli/src/engine/interactormanager.cpp:140
#12 0x0000000000433bfb in Palapeli::InteractorManager::handleEvent (this=0x2494cb0, event=0x7fff35731770) at ../../../palapeli/src/engine/interactormanager.cpp:106
#13 0x0000000000445ded in Palapeli::View::mouseReleaseEvent (this=<optimized out>, event=0x7fff35731770) at ../../../palapeli/src/engine/view.cpp:113
#14 0x00007f60a8a92fb4 in QWidget::event (this=0x24d7d50, event=0x7fff35731770) at kernel/qwidget.cpp:8371
#15 0x00007f60a8e53836 in QFrame::event (this=0x24d7d50, e=0x7fff35731770) at widgets/qframe.cpp:557
#16 0x00007f60a907e2eb in QGraphicsView::viewportEvent (this=0x24d7d50, event=0x7fff35731770) at graphicsview/qgraphicsview.cpp:2866
#17 0x00007f60a96c1498 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<optimized out>, receiver=0x24d9be0, event=0x7fff35731770) at kernel/qcoreapplication.cpp:1025
#18 0x00007f60a8a4277f in notify_helper (e=0x7fff35731770, receiver=0x24d9be0, this=0x2218300) at kernel/qapplication.cpp:4552
#19 QApplicationPrivate::notify_helper (this=0x2218300, receiver=0x24d9be0, e=0x7fff35731770) at kernel/qapplication.cpp:4528
#20 0x00007f60a8a47f2f in QApplication::notify (this=<optimized out>, receiver=0x24d9be0, e=0x7fff35731770) at kernel/qapplication.cpp:4099
#21 0x00007f60aa380786 in KApplication::notify (this=0x7fff35732450, receiver=0x24d9be0, event=0x7fff35731770) at ../../kdeui/kernel/kapplication.cpp:311
#22 0x00007f60a96c130c in QCoreApplication::notifyInternal (this=0x7fff35732450, receiver=0x24d9be0, event=0x7fff35731770) at kernel/qcoreapplication.cpp:915
#23 0x00007f60a8a43782 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#24 QApplicationPrivate::sendMouseEvent (receiver=0x24d9be0, event=0x7fff35731770, alienWidget=0x24d9be0, nativeWidget=0x2470090, buttonDown=0x24d9be0, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3167
#25 0x00007f60a8ac2b15 in QETWidget::translateMouseEvent (this=0x2470090, event=<optimized out>) at kernel/qapplication_x11.cpp:4617
#26 0x00007f60a8ac1ace in QApplication::x11ProcessEvent (this=0x7fff35732450, event=0x7fff35732040) at kernel/qapplication_x11.cpp:3732
#27 0x00007f60a8aeb052 in x11EventSourceDispatch (s=0x2218040, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#28 0x00007f60a4897d53 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007f60a48980a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007f60a4898164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007f60a96f089f in QEventDispatcherGlib::processEvents (this=0x21f64b0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#32 0x00007f60a8aeacde in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#33 0x00007f60a96bfe42 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#34 0x00007f60a96c0097 in QEventLoop::exec (this=0x7fff357323e0, flags=...) at kernel/qeventloop.cpp:204
#35 0x00007f60a96c53e7 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#36 0x000000000042492d in main (argc=1, argv=0x7fff35732798) at ../../../palapeli/src/main.cpp:51

Reported using DrKonqi
Comment 1 Alexander Schuch 2014-01-05 17:52:08 UTC
Application: palapeli (1.2) (master 427b868)
KDE Platform Version: 4.10.5
Qt Version: 4.8.4
Operating System: Linux 3.8.0-35-generic x86_64
Distribution: Ubuntu 13.04

-- Information about the crash:
- Custom settings of the application:

I was using an own jigsaw with 250 pieces. The crash happened during the game. I was not even close to finishing it - maybe around 10%.
I compiled the source myself from current git master (master 427b868).

-- Backtrace:
Application: Palapeli (palapeli), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fd83f7927c0 (LWP 12266))]

Thread 3 (Thread 0x7fd82e4c0700 (LWP 12267)):
#0  0x00007fd839058280 in pthread_mutex_lock@plt () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fd8390c65c1 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fd8390871c2 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fd839087304 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fd83de7b036 in QEventDispatcherGlib::processEvents (this=0x7fd8280008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#5  0x00007fd83de4b38f in QEventLoop::processEvents (this=this@entry=0x7fd82e4bfd90, flags=...) at kernel/qeventloop.cpp:149
#6  0x00007fd83de4b618 in QEventLoop::exec (this=this@entry=0x7fd82e4bfd90, flags=...) at kernel/qeventloop.cpp:204
#7  0x00007fd83dd4d410 in QThread::exec (this=this@entry=0xa8e910) at thread/qthread.cpp:542
#8  0x00007fd83de2cedf in QInotifyFileSystemWatcherEngine::run (this=0xa8e910) at io/qfilesystemwatcher_inotify.cpp:256
#9  0x00007fd83dd4fbec in QThreadPrivate::start (arg=0xa8e910) at thread/qthread_unix.cpp:338
#10 0x00007fd839749f8e in start_thread (arg=0x7fd82e4c0700) at pthread_create.c:311
#11 0x00007fd83c750a0d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7fd81d16d700 (LWP 12304)):
#0  0x00007fd83c743fbd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007fd8390871dc in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fd839087304 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fd83de7b036 in QEventDispatcherGlib::processEvents (this=0x7fd8100008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007fd83de4b38f in QEventLoop::processEvents (this=this@entry=0x7fd81d16cd90, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007fd83de4b618 in QEventLoop::exec (this=this@entry=0x7fd81d16cd90, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007fd83dd4d410 in QThread::exec (this=this@entry=0x4f14320) at thread/qthread.cpp:542
#7  0x00007fd83de2cedf in QInotifyFileSystemWatcherEngine::run (this=0x4f14320) at io/qfilesystemwatcher_inotify.cpp:256
#8  0x00007fd83dd4fbec in QThreadPrivate::start (arg=0x4f14320) at thread/qthread_unix.cpp:338
#9  0x00007fd839749f8e in start_thread (arg=0x7fd81d16d700) at pthread_create.c:311
#10 0x00007fd83c750a0d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7fd83f7927c0 (LWP 12266)):
[KCrash Handler]
#6  0x00007fd83de62e4f in QObject::disconnect (sender=sender@entry=0x3552000, signal=signal@entry=0x0, receiver=receiver@entry=0xa595b0, method=method@entry=0x0) at kernel/qobject.cpp:2887
#7  0x0000000000432472 in Palapeli::MovePieceInteractor::stopInteraction (this=0xa595b0, event=...) at /home/aschuch/repository/git/anongit.kde.org/palapeli/src/engine/interactors.cpp:129
#8  0x00000000004310ea in setInactive (this=0xa595c0) at /home/aschuch/repository/git/anongit.kde.org/palapeli/src/engine/interactor.cpp:122
#9  Palapeli::Interactor::setInactive (this=0xa595c0) at /home/aschuch/repository/git/anongit.kde.org/palapeli/src/engine/interactor.cpp:117
#10 0x0000000000433b8f in Palapeli::InteractorManager::handleEventCommon (this=this@entry=0xa75cc0, pEvent=..., interactorData=..., unhandledButtons=...) at /home/aschuch/repository/git/anongit.kde.org/palapeli/src/engine/interactormanager.cpp:140
#11 0x0000000000434000 in Palapeli::InteractorManager::handleEvent (this=0xa75cc0, event=event@entry=0x7fff053af2e0) at /home/aschuch/repository/git/anongit.kde.org/palapeli/src/engine/interactormanager.cpp:106
#12 0x000000000044691d in Palapeli::View::mouseReleaseEvent (this=<optimized out>, event=0x7fff053af2e0) at /home/aschuch/repository/git/anongit.kde.org/palapeli/src/engine/view.cpp:119
#13 0x00007fd83d23fa89 in QWidget::event (this=this@entry=0xa83b60, event=event@entry=0x7fff053af2e0) at kernel/qwidget.cpp:8375
#14 0x00007fd83d5f2486 in QFrame::event (this=0xa83b60, e=0x7fff053af2e0) at widgets/qframe.cpp:557
#15 0x00007fd83d80a24b in QGraphicsView::viewportEvent (this=0xa83b60, event=0x7fff053af2e0) at graphicsview/qgraphicsview.cpp:2866
#16 0x00007fd83de4c7a6 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=this@entry=0x884f90, receiver=receiver@entry=0xa41750, event=event@entry=0x7fff053af2e0) at kernel/qcoreapplication.cpp:1056
#17 0x00007fd83d1f28bc in QApplicationPrivate::notify_helper (this=this@entry=0x884f90, receiver=receiver@entry=0xa41750, e=e@entry=0x7fff053af2e0) at kernel/qapplication.cpp:4563
#18 0x00007fd83d1f5a33 in QApplication::notify (this=this@entry=0x7fff053aff50, receiver=receiver@entry=0xa41750, e=e@entry=0x7fff053af2e0) at kernel/qapplication.cpp:4110
#19 0x00007fd83eaeb1a6 in KApplication::notify (this=0x7fff053aff50, receiver=0xa41750, event=0x7fff053af2e0) at ../../kdeui/kernel/kapplication.cpp:311
#20 0x00007fd83de4c63e in QCoreApplication::notifyInternal (this=0x7fff053aff50, receiver=receiver@entry=0xa41750, event=event@entry=0x7fff053af2e0) at kernel/qcoreapplication.cpp:946
#21 0x00007fd83d1f8933 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#22 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0xa41750, event=event@entry=0x7fff053af2e0, alienWidget=alienWidget@entry=0xa41750, nativeWidget=nativeWidget@entry=0x9fc800, buttonDown=buttonDown@entry=0x7fd83dcd0308 <qt_button_down>, lastMouseReceiver=..., spontaneous=spontaneous@entry=true) at kernel/qapplication.cpp:3178
#23 0x00007fd83d26de54 in QETWidget::translateMouseEvent (this=this@entry=0x9fc800, event=event@entry=0x7fff053afa60) at kernel/qapplication_x11.cpp:4631
#24 0x00007fd83d26ce81 in QApplication::x11ProcessEvent (this=0x7fff053aff50, event=event@entry=0x7fff053afa60) at kernel/qapplication_x11.cpp:3746
#25 0x00007fd83d298042 in x11EventSourceDispatch (s=0x871f20, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#26 0x00007fd839086f05 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fd839087248 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007fd839087304 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007fd83de7b016 in QEventDispatcherGlib::processEvents (this=0x85a3f0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#30 0x00007fd83d29813e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#31 0x00007fd83de4b38f in QEventLoop::processEvents (this=this@entry=0x7fff053afe30, flags=...) at kernel/qeventloop.cpp:149
#32 0x00007fd83de4b618 in QEventLoop::exec (this=this@entry=0x7fff053afe30, flags=...) at kernel/qeventloop.cpp:204
#33 0x00007fd83de50cf6 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#34 0x00007fd83d1f0ffc in QApplication::exec () at kernel/qapplication.cpp:3828
#35 0x00000000004258d5 in main (argc=1, argv=0x7fff053b0088) at /home/aschuch/repository/git/anongit.kde.org/palapeli/src/main.cpp:54
Comment 2 Jekyll Wu 2014-06-11 22:12:36 UTC
*** Bug 336075 has been marked as a duplicate of this bug. ***
Comment 3 Andrew Crouthamel 2018-10-31 04:14:02 UTC
Dear Bug Submitter,

This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond.

Thank you for helping us make KDE software even better for everyone!
Comment 4 Pichouett 2018-11-06 19:17:10 UTC
Hi,
since I installed another version of Linux and the new version of palapeli, I wasn't able to reproduce.
I guess we can close this bug report.
Many thanks for the investigation
Gérald
Comment 5 Ian Wadham 2018-11-07 06:18:06 UTC
As the last maintainer of Palapeli, I think it is premature to close this bug and others like it. I believe that they share the same underlying cause and I see nothing in the commit history https://phabricator.kde.org/source/palapeli/history/master/ to suggest that the bugs have been fixed since September 2017. They were certainly active then and resisted efforts by Christian Ehrlicher and myself to nail them down. They are highly intermittent and non-reproducible. See the kde-games-devel archive at

https://mail.kde.org/pipermail/kde-games-devel/2017-September/thread.html

for discussions of the issues. Back then I did try Christian's idea of extending the animation time for the "merge pieces" action, but still failed to reproduce the problem as it occurs during normal game-play. Unfortunately I am unable to try the KF5 and Qt5 version of Palapeli.

That said, the bugs are very annoying but fairly harmless when they cause Palapeli to crash, because Palapeli saves the puzzle state every 2 seconds and the user gets a fairly "hot" recovery when he/she re-runs Palapeli. Crashes occur intermittently around once per hour on large puzzles.

Other bugs that I believe are related to this one (bug 312267) are bug 31194, bug 303059 and bug 336075. Christian resolved the last of those in Sept 2017 (D7637), see

https://phabricator.kde.org/R423:39cf28839784a4daca127ca4032e55239732def4

The most commonly occurring crashes are represented by 31194 and 303059.
Comment 6 Andrew Crouthamel 2018-11-07 08:27:15 UTC
Set back to REPORTED per Ian.
Comment 7 Justin Zobel 2020-12-04 04:59:56 UTC
Thank you for the report.

As it has been a while since this was reported, can you please test and confirm if this issue is still occurring or if this bug report can be marked as resolved.

I have set the bug status to "needsinfo" pending your response, please change back to "reported" or "resolved/worksforme" when you respond, thank you.
Comment 8 Bug Janitor Service 2020-12-19 04:34:45 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 9 Ian Wadham 2020-12-22 01:45:52 UTC
It has been some time since I wrote comment 5, https://bugs.kde.org/show_bug.cgi?id=312267#c5, but I have not been able to reproduce this bug nor have I been able to diagnose it by reading the code. This bug and its duplicates appear to be due to a race condition between mouse events involved in drag-and-drop and a QAnimation invoked when it is decided that pieces that fit have been dragged close enough together to be merged. During the merge, the objects (type Piece) representing pieces to merge are deleted and a new Piece object is created. If the race condition occurs, a deleted Piece can be referenced while processing a mouse event or while making an animation move --- as seen in the crash reports.

These crashes used to be quite common and I used to experience them myself when playing Palapeli. However, Palapeli saves its state every two seconds, so a "hot" recovery from the crashes was always available. That said, I have not experienced such a crash for several years nor have I seen one reported recently.

Therefore I can only conclude that the crashes have "gone away" due to some change in Qt, such as delaying the timing of QObject::deleteLater().

So, indeed yes, please change the status of this bug and all related bugs to RESOLVED > WORKSFORME.
Comment 10 Justin Zobel 2021-01-01 09:06:11 UTC
Thanks Ian. I'll leave it open for now as others had the same issue. If nobody else replies then it'll close automatically in time.
Comment 11 Bug Janitor Service 2021-01-16 04:33:47 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 12 Bug Janitor Service 2021-01-31 04:33:16 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!