Bug 299917

Summary: digiKam crashed on exiting and canseling rotate task that is hanging more than 5 minutes
Product: [Applications] digikam Reporter: dilnix <dilnix>
Component: Plugin-Bqm-RotateAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, cfeck, nucleo
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In: 7.6.0
Sentry Crash Report:

Description dilnix 2012-05-13 05:23:57 UTC
Application: digikam (2.6.0-rc)
KDE Platform Version: 4.8.3 (4.8.3)
Qt Version: 4.8.1
Operating System: Linux 3.3.4-4.fc17.i686.PAE i686
Distribution: "Fedora release 17 (Beefy Miracle)"

-- Information about the crash:
- What I was doing when the application crashed:

I made rotate some JPG image and watched how it goes... after 5 minutes tried to exit... digiKam said "finishing tasks"... i chosed to Finish & it crashed

-- Backtrace:
Application: digiKam (digikam), signal: Aborted
Using host libthread_db library "/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0xb6f0b900 (LWP 4299))]

Thread 5 (Thread 0xb41ffb40 (LWP 4307)):
#0  0xb770b424 in __kernel_vsyscall ()
#1  0x4bc4d044 in __GI___poll (fds=fds@entry=0xb38022b0, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0x4bfb9ebc in g_poll (fds=0xb38022b0, nfds=1, timeout=-1) at gpoll.c:132
#3  0x4bfab310 in g_main_context_poll (n_fds=1, fds=0xb38022b0, timeout=<optimized out>, context=0xb38004e0, priority=<optimized out>) at gmain.c:3417
#4  g_main_context_iterate (context=context@entry=0xb38004e0, block=block@entry=1, dispatch=dispatch@entry=1, self=<error reading variable: Unhandled dwarf expression opcode 0xfa>) at gmain.c:3118
#5  0x4bfab472 in g_main_context_iteration (context=0xb38004e0, may_block=1) at gmain.c:3184
#6  0x4166313f in QEventDispatcherGlib::processEvents (this=0xb3800468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#7  0x4162f87d in QEventLoop::processEvents (this=this@entry=0xb41ff088, flags=...) at kernel/qeventloop.cpp:149
#8  0x4162fb79 in QEventLoop::exec (this=0xb41ff088, flags=...) at kernel/qeventloop.cpp:204
#9  0x41519ddc in QThread::exec (this=0x9de3b08) at thread/qthread.cpp:501
#10 0x4160da5e in QInotifyFileSystemWatcherEngine::run (this=0x9de3b08) at io/qfilesystemwatcher_inotify.cpp:248
#11 0x4151d221 in QThreadPrivate::start (arg=0x9de3b08) at thread/qthread_unix.cpp:298
#12 0x4bd23adf in start_thread (arg=0xb41ffb40) at pthread_create.c:309
#13 0x4bc5755e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 4 (Thread 0xb37ffb40 (LWP 4314)):
#0  0xb770b424 in __kernel_vsyscall ()
#1  0x4bd2712c in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:172
#2  0x4151d7a8 in wait (time=4294967295, this=0x9f09d78) at thread/qwaitcondition_unix.cpp:86
#3  QWaitCondition::wait (this=0xa026f88, mutex=0xa026f84, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#4  0xb743056c in Digikam::ParkingThread::run (this=0xa026f78) at /usr/src/debug/digikam-software-compilation-2.6.0-rc/core/libs/threads/threadmanager.cpp:119
#5  0x4151d221 in QThreadPrivate::start (arg=0xa026f78) at thread/qthread_unix.cpp:298
#6  0x4bd23adf in start_thread (arg=0xb37ffb40) at pthread_create.c:309
#7  0x4bc5755e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 3 (Thread 0xadb5bb40 (LWP 5251)):
#0  0xb770b424 in __kernel_vsyscall ()
#1  0x4bd2a18b in read () at ../sysdeps/unix/syscall-template.S:82
#2  0x4bfeb536 in read (__nbytes=16, __buf=0xadb5aebc, __fd=<optimized out>) at /usr/include/bits/unistd.h:45
#3  g_wakeup_acknowledge (wakeup=0xb2e034b0) at gwakeup.c:212
#4  0x4bfaad38 in g_main_context_check (context=context@entry=0xa1ad8bb0, max_priority=2147483647, fds=fds@entry=0xb3842250, n_fds=n_fds@entry=1) at gmain.c:2957
#5  0x4bfab2a2 in g_main_context_iterate (context=context@entry=0xa1ad8bb0, block=block@entry=1, dispatch=dispatch@entry=1, self=<error reading variable: Unhandled dwarf expression opcode 0xfa>) at gmain.c:3120
#6  0x4bfab472 in g_main_context_iteration (context=0xa1ad8bb0, may_block=1) at gmain.c:3184
#7  0x4166313f in QEventDispatcherGlib::processEvents (this=0xb3815978, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#8  0x4162f87d in QEventLoop::processEvents (this=this@entry=0xadb5b088, flags=...) at kernel/qeventloop.cpp:149
#9  0x4162fb79 in QEventLoop::exec (this=0xadb5b088, flags=...) at kernel/qeventloop.cpp:204
#10 0x41519ddc in QThread::exec (this=0xb1fc1b0) at thread/qthread.cpp:501
#11 0x4160da5e in QInotifyFileSystemWatcherEngine::run (this=0xb1fc1b0) at io/qfilesystemwatcher_inotify.cpp:248
#12 0x4151d221 in QThreadPrivate::start (arg=0xb1fc1b0) at thread/qthread_unix.cpp:298
#13 0x4bd23adf in start_thread (arg=0xadb5bb40) at pthread_create.c:309
#14 0x4bc5755e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 2 (Thread 0x9b0a8b40 (LWP 5260)):
#0  0xb770b424 in __kernel_vsyscall ()
#1  0x4bd274d4 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:238
#2  0x4151d71e in wait (time=30000, this=0xabb9ef8) at thread/qwaitcondition_unix.cpp:84
#3  QWaitCondition::wait (this=0xa8e16a8, mutex=0xa8e16a4, time=30000) at thread/qwaitcondition_unix.cpp:158
#4  0x4150fe4c in QThreadPoolThread::run (this=0xa1a16888) at concurrent/qthreadpool.cpp:141
#5  0x4151d221 in QThreadPrivate::start (arg=0xa1a16888) at thread/qthread_unix.cpp:298
#6  0x4bd23adf in start_thread (arg=0x9b0a8b40) at pthread_create.c:309
#7  0x4bc5755e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 1 (Thread 0xb6f0b900 (LWP 4299)):
[KCrash Handler]
#7  0xb770b424 in __kernel_vsyscall ()
#8  0x4bb9491f in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#9  0x4bb96273 in __GI_abort () at abort.c:91
#10 0x4bbd2785 in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x4bcd3074 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:198
#11 0x4bbda109 in malloc_printerr (ptr=0xb73cd28, str=0x4bcd0ecc "free(): invalid pointer", action=<optimized out>) at malloc.c:5027
#12 _int_free (av=0x4bd10420, p=0xb73cd20, have_lock=0) at malloc.c:3948
#13 0x41515b4c in qFree (ptr=0xb73cd28) at global/qmalloc.cpp:60
#14 0x4153c106 in QHashData::freeNode (this=this@entry=0x9e4b078, node=0xb73cd28) at tools/qhash.cpp:189
#15 0x4153c17c in QHashData::free_helper (this=0x9e4b078, node_delete=0x424a5dc0 <QHash<QPixmapCache::Key, QCache<QPixmapCache::Key, QPixmapCacheEntry>::Node>::deleteNode2(QHashData::Node*)>) at tools/qhash.cpp:276
#16 0x424a5a35 in freeData (x=<optimized out>, this=<optimized out>) at ../../src/corelib/tools/qhash.h:570
#17 operator= (other=..., this=0x9eb04c0) at ../../src/corelib/tools/qhash.h:597
#18 clear (this=0x9eb04c0) at ../../src/corelib/tools/qhash.h:576
#19 clear (this=<optimized out>) at ../../src/corelib/tools/qcache.h:140
#20 QPMCache::clear (this=0x9eb04b0) at image/qpixmapcache.cpp:430
#21 0x424a5a7d in QPixmapCache::clear () at image/qpixmapcache.cpp:658
#22 0x42441aed in qt_cleanup () at kernel/qapplication_x11.cpp:2687
#23 0x423c4382 in QApplication::~QApplication (this=0xbfb81ab8, __in_chrg=<optimized out>) at kernel/qapplication.cpp:1190
#24 0x42f5bc09 in KApplication::~KApplication (this=0xbfb81ab8, __in_chrg=<optimized out>) at /usr/src/debug/kdelibs-4.8.3/kdeui/kernel/kapplication.cpp:894
#25 0x080b8d33 in main (argc=5, argv=0xbfb81c14) at /usr/src/debug/digikam-software-compilation-2.6.0-rc/core/digikam/main/main.cpp:236

Possible duplicates by query: bug 299828, bug 299137, bug 297549, bug 296435, bug 294766.

Reported using DrKonqi
Comment 1 caulier.gilles 2012-05-13 06:57:04 UTC
It's purely an internal crash in Qt4 about memory allocation. It's not digiKam stuff...

Gilles Caulier
Comment 2 caulier.gilles 2012-05-13 07:42:31 UTC
Same backtrace in fact than #299886

*** This bug has been marked as a duplicate of bug 299886 ***
Comment 3 Christoph Feck 2012-05-14 23:12:09 UTC
I fail to see how it is the same backtrace. Anyway, in both of them the issue is memory corruption. Needs a valgrind trace to find out where it happens.
Comment 4 caulier.gilles 2022-01-19 03:21:52 UTC
Fixed with https://bugs.kde.org/show_bug.cgi?id=299886