Bug 180507

Summary: crash when dragging picture to another app with kwin_composite enabled
Product: [Applications] digikam Reporter: Will Stephenson <wstephenson>
Component: Usability-Drag&DropAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: crash CC: kde, l.lunak, marcel.wiesweg, w.richert
Priority: NOR    
Version: 0.10.0   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Unspecified   
Latest Commit: Version Fixed In: 1.0.0
Sentry Crash Report:

Description Will Stephenson 2009-01-12 22:59:45 UTC
Version:            (using Devel)
Installed from:    Compiled sources

Very strange.  It doesn't happen with regular kwin at all.  beta8, suse packages.

libqt4-4.4.3-29.1

Steps to reproduce:

drag a picture from an album (ie using regular folder-based album view) on to another app (ie dolphin).  Either alt-tab with maximised windows or just drag it off the digikam window if not maximised.

drag it around a bit without releasing
dolphin crashes:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f134702b700 (LWP 30474)]
0x00007f1342fc6d2f in QWidget::testAttribute_helper (this=0x59e38c0, attribute=Qt::WA_Hover) at kernel/qwidget.cpp:9341
9341        const int int_off = x / (8*sizeof(uint));
(gdb) '/home/will/Documents/Pictures/2007/Akademy Glasgow/will_glasgow_bridge.jpg'
Undefined command: "".  Try "help".
(gdb) p int_off
$1 = 1
(gdb) p x
$2 = {int (const QWidget *)} 0x7f1342fcc3d0 <QWidget::x() const>
(gdb) l
9336     */
9337    bool QWidget::testAttribute_helper(Qt::WidgetAttribute attribute) const
9338    {
9339        Q_D(const QWidget);
9340        const int x = attribute - 8*sizeof(uint);
9341        const int int_off = x / (8*sizeof(uint));
9342        return (d->high_attributes[int_off] & (1<<(x-(int_off*8*sizeof(uint)))));
9343    }
9344
9345    /*!
(gdb) p attribute
$3 = Qt::WA_Hover
(gdb) p this
$4 = (const QWidget * const) 0x59e38c0
(gdb) p *this
$5 = {<QObject> = {_vptr.QObject = 0x6048e20, d_ptr = 0x0}, <QPaintDevice> = {_vptr.QPaintDevice = 0x7f13438d7c30, painters = 0}, data = 0x5d1e458}
(gdb) bt
#0  0x00007f1342fc6d2f in QWidget::testAttribute_helper (this=0x59e38c0, attribute=Qt::WA_Hover) at kernel/qwidget.cpp:9341
#1  0x00007f1342f8c884 in QApplication::notify (this=<value optimized out>, receiver=<value optimized out>, e=0x7fff4f08c8c0) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:987
#2  0x00007f134429cafb in KApplication::notify () from /usr/lib64/libkdeui.so.5
#3  0x00007f1342448e81 in QCoreApplication::notifyInternal (this=0x7fff4f08f120, receiver=0x59e38c0, event=0x7fff4f08c8c0) at kernel/qcoreapplication.cpp:587
#4  0x00007f1342f8bb38 in QApplicationPrivate::sendMouseEvent (receiver=0x59e38c0, event=0x7fff4f08c8c0, alienWidget=0x0, nativeWidget=0x59e38c0, buttonDown=<value optimized out>,
    lastMouseReceiver=@0x7f1343901760) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:212
#5  0x00007f1342ff0289 in QETWidget::translateMouseEvent (this=0x59e38c0, event=<value optimized out>) at kernel/qapplication_x11.cpp:4042
#6  0x00007f1342feeca7 in QApplication::x11ProcessEvent (this=0x7fff4f08f120, event=0x7fff4f08d340) at kernel/qapplication_x11.cpp:3160
#7  0x00007f134301558c in x11EventSourceDispatch (s=0x94e7e0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:142
#8  0x00007f133aa1d93a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#9  0x00007f133aa21040 in ?? () from /usr/lib64/libglib-2.0.so.0
#10 0x00007f133aa211dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#11 0x00007f13424713af in QEventDispatcherGlib::processEvents (this=0x94aea0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:319
#12 0x00007f1343014cff in QGuiEventDispatcherGlib::processEvents (this=0x59e38c0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:198
#13 0x00007f1342447782 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 1325979184}) at kernel/qeventloop.cpp:143
#14 0x00007f134244790d in QEventLoop::exec (this=0x4af1be0, flags={i = 1325979328}) at kernel/qeventloop.cpp:194
#15 0x00007f1342ffe78b in QDragManager::drag (this=0x491c7c0, o=<value optimized out>) at kernel/qdnd_x11.cpp:1944
#16 0x00007f1342f96938 in QDrag::exec (this=0x58b4560, supportedActions={i = 1325979696}, defaultDropAction=Qt::IgnoreAction) at kernel/qdrag.cpp:275
#17 0x00007f1342f969e3 in QDrag::exec (this=0x59e38c0, supportedActions=<value optimized out>) at kernel/qdrag.cpp:234
#18 0x00000000005922ef in Digikam::AlbumIconView::startDrag (this=0xb26150) at /usr/src/debug/digikam-0.10.0-beta8/digikam/albumiconview.cpp:1341
#19 0x0000000000614016 in Digikam::IconView::contentsMouseMoveEvent (this=0xb26150, e=0x7fff4f08dc30) at /usr/src/debug/digikam-0.10.0-beta8/digikam/iconview.cpp:1170
#20 0x00007f1340ff5eb9 in Q3ScrollView::viewportMouseMoveEvent (this=0xb26150, e=0x7fff4f08e2b0) at widgets/q3scrollview.cpp:1789
#21 0x00007f1340ff7788 in Q3ScrollView::eventFilter (this=0xb26150, obj=0xac53d0, e=0x7fff4f08e2b0) at widgets/q3scrollview.cpp:1487
#22 0x00007f1342448148 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<value optimized out>, receiver=0xac53d0, event=0x7fff4f08e2b0) at kernel/qcoreapplication.cpp:694
#23 0x00007f1342f8414c in QApplicationPrivate::notify_helper (this=0x94af40, receiver=0xac53d0, e=0x7fff4f08e2b0) at kernel/qapplication.cpp:3799
#24 0x00007f1342f8c79a in QApplication::notify (this=<value optimized out>, receiver=0xac53d0, e=0x7fff4f08e2b0) at kernel/qapplication.cpp:3528
#25 0x00007f134429cafb in KApplication::notify () from /usr/lib64/libkdeui.so.5
#26 0x00007f1342448e81 in QCoreApplication::notifyInternal (this=0x7fff4f08f120, receiver=0xac53d0, event=0x7fff4f08e2b0) at kernel/qcoreapplication.cpp:587
#27 0x00007f1342f8bb38 in QApplicationPrivate::sendMouseEvent (receiver=0xac53d0, event=0x7fff4f08e2b0, alienWidget=0xac53d0, nativeWidget=0xb26150, buttonDown=<value optimized out>,
    lastMouseReceiver=@0x7f1343901760) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:212
#28 0x00007f1342ff0289 in QETWidget::translateMouseEvent (this=0xb26150, event=<value optimized out>) at kernel/qapplication_x11.cpp:4042
#29 0x00007f1342feeca7 in QApplication::x11ProcessEvent (this=0x7fff4f08f120, event=0x7fff4f08ed30) at kernel/qapplication_x11.cpp:3160
#30 0x00007f134301558c in x11EventSourceDispatch (s=0x94e7e0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:142
#31 0x00007f133aa1d93a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#32 0x00007f133aa21040 in ?? () from /usr/lib64/libglib-2.0.so.0
#33 0x00007f133aa211dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#34 0x00007f13424713af in QEventDispatcherGlib::processEvents (this=0x94aea0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:319
#35 0x00007f1343014cff in QGuiEventDispatcherGlib::processEvents (this=0x59e38c0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:198
#36 0x00007f1342447782 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 1325985824}) at kernel/qeventloop.cpp:143
#37 0x00007f134244790d in QEventLoop::exec (this=0x7fff4f08f060, flags={i = 1325985904}) at kernel/qeventloop.cpp:194
#38 0x00007f1342449dfd in QCoreApplication::exec () at kernel/qcoreapplication.cpp:845
#39 0x0000000000656df1 in main (argc=1, argv=0x7fff4f08fd88) at /usr/src/debug/digikam-0.10.0-beta8/digikam/main.cpp:188
Comment 1 Marcel Wiesweg 2009-01-29 22:15:34 UTC
KDE4.2 Opensuse packages, KWin desktop effects enabled (XRender, only few effects enabled).
No crash here.
Will, can you reproduce with current Opensuse packages? Does this depend on OpenGL? Does this depend on certain KWin effect modules enabled (which do you have enabled?)?
Comment 2 Andi Clemens 2009-02-06 10:03:42 UTC
Using Archlinux with latest KDE4.2 packages, KWin with OpenGL (but I also tested XRender):
No problems when dragging images from digiKam to dolphin or konqueror.
Comment 3 Willi Richert 2009-02-17 09:39:05 UTC
Kubuntu 8.04 with ppa repo and KDE4.2: Crash while dragging, but composite disabled.


Anwendung: digiKam (digikam), Signal SIGABRT
[Current thread is 0 (LWP 12794)]

Thread 10 (Thread 0xb3104b90 (LWP 12803)):
#0  0xb7f4a430 in __kernel_vsyscall ()
#1  0xb54b4075 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb55b3bbd in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libc.so.6
#3  0xb579c6f2 in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#4  0x0828f3d9 in ?? ()
#5  0xb579b6ae in ?? () from /usr/lib/libQtCore.so.4
#6  0xb54b050f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7  0xb55a5a0e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 9 (Thread 0xb1d50b90 (LWP 12847)):
#0  0xb7f4a430 in __kernel_vsyscall ()
#1  0xb54b4075 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb55b3bbd in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libc.so.6
#3  0xb579c6f2 in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#4  0xb71601ba in Digikam::LoadSaveThread::run () from /usr/lib/libdigikamcore.so.1
#5  0xb579b6ae in ?? () from /usr/lib/libQtCore.so.4
#6  0xb54b050f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7  0xb55a5a0e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 8 (Thread 0xb2551b90 (LWP 12849)):
#0  0xb7f4a430 in __kernel_vsyscall ()
#1  0xb54b4075 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb55b3bbd in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libc.so.6
#3  0xb579c6f2 in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#4  0xb71601ba in Digikam::LoadSaveThread::run () from /usr/lib/libdigikamcore.so.1
#5  0xb579b6ae in ?? () from /usr/lib/libQtCore.so.4
#6  0xb54b050f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#7  0xb55a5a0e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 7 (Thread 0xaf331b90 (LWP 12858)):
#0  0xb7f4a430 in __kernel_vsyscall ()
#1  0xb54b43a2 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb55b3c14 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libc.so.6
#3  0xafe3967f in ?? () from /usr/lib/libxine.so.1

Thread 6 (Thread 0xae6b0b90 (LWP 12864)):
#0  0xb7f4a430 in __kernel_vsyscall ()
#1  0xb559ddf1 in select () from /lib/tls/i686/cmov/libc.so.6
#2  0xafe65580 in xine_usec_sleep () from /usr/lib/libxine.so.1
#3  0x00000000 in ?? ()

Thread 5 (Thread 0xadeafb90 (LWP 12865)):
#0  0xb4b2254a in clock_gettime () from /lib/tls/i686/cmov/librt.so.1
#1  0xb58b80ab in ?? () from /usr/lib/libQtCore.so.4
#2  0xb58b8281 in ?? () from /usr/lib/libQtCore.so.4
#3  0xb58b9e3c in ?? () from /usr/lib/libQtCore.so.4
#4  0xb58b665a in ?? () from /usr/lib/libQtCore.so.4
#5  0xb4c44602 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#6  0xb4c44a8a in ?? () from /usr/lib/libglib-2.0.so.0
#7  0xb4c44f61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#8  0xb58b6497 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#9  0xb588a52a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#10 0xb588a6ea in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#11 0xb5798419 in QThread::exec () from /usr/lib/libQtCore.so.4
#12 0xafe89512 in ?? () from /usr/lib/kde4/plugins/phonon_backend/phonon_xine.so
#13 0xb579b6ae in ?? () from /usr/lib/libQtCore.so.4
#14 0xb54b050f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#15 0xb55a5a0e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 4 (Thread 0xad6aeb90 (LWP 12868)):

Thread 3 (Thread 0xace6bb90 (LWP 12869)):
#0  0xb7f4a430 in __kernel_vsyscall ()
#1  0xb54b4075 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb55b3bbd in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/i686/cmov/libc.so.6
#3  0xafe4b843 in ?? () from /usr/lib/libxine.so.1
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 2 (Thread 0xac5b0b90 (LWP 12909)):
#0  0xb7f4a430 in __kernel_vsyscall ()
#1  0xb5594e8b in open () from /lib/tls/i686/cmov/libc.so.6
#2  0xb553001f in _IO_new_file_fopen () from /lib/tls/i686/cmov/libc.so.6
#3  0xb5523abd in __fopen_internal () from /lib/tls/i686/cmov/libc.so.6
#4  0xb552633c in fopen64 () from /lib/tls/i686/cmov/libc.so.6
#5  0xb7175c3d in Digikam::ThumbnailCreator::loadPNG () from /usr/lib/libdigikamcore.so.1
#6  0xb7178134 in Digikam::ThumbnailCreator::load () from /usr/lib/libdigikamcore.so.1
#7  0xb717e86b in ?? () from /usr/lib/libdigikamcore.so.1
#8  0xb71601c8 in Digikam::LoadSaveThread::run () from /usr/lib/libdigikamcore.so.1
#9  0xb579b6ae in ?? () from /usr/lib/libQtCore.so.4
#10 0xb54b050f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#11 0xb55a5a0e in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb47b16c0 (LWP 12794)):
[KCrash Handler]
#6  0xb7f4a430 in __kernel_vsyscall ()
#7  0xb54ef8a0 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0xb54f1268 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0xb5533483 in malloc_printerr () from /lib/tls/i686/cmov/libc.so.6
#10 0xb5535455 in free () from /lib/tls/i686/cmov/libc.so.6
#11 0xb533efdd in XFree () from /usr/lib/libX11.so.6
#12 0xb5dbb1f9 in ?? () from /usr/lib/libQtGui.so.4
#13 0xb5dbf37b in QDragManager::move () from /usr/lib/libQtGui.so.4
#14 0xb5dc2071 in QDragManager::eventFilter () from /usr/lib/libQtGui.so.4
#15 0xb588b0f4 in QCoreApplicationPrivate::sendThroughApplicationEventFilters () from /usr/lib/libQtCore.so.4
#16 0xb5d3e863 in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#17 0xb5d470e1 in QApplication::notify () from /usr/lib/libQtGui.so.4
#18 0xb6857fed in KApplication::notify (this=0xbff4b0d4, receiver=0xbc8b760, event=0xbff496f8) at /build/buildd/kde4libs-4.2.0/kdeui/kernel/kapplication.cpp:307
#19 0xb588be61 in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#20 0xb5d4636e in QApplicationPrivate::sendMouseEvent () from /usr/lib/libQtGui.so.4
#21 0xb5db0656 in ?? () from /usr/lib/libQtGui.so.4
#22 0xb5daf9e5 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#23 0xb5dd97aa in ?? () from /usr/lib/libQtGui.so.4
#24 0xb4c416f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#25 0xb4c44da3 in ?? () from /usr/lib/libglib-2.0.so.0
#26 0xb4c44f61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#27 0xb58b6478 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#28 0xb5dd8ea5 in ?? () from /usr/lib/libQtGui.so.4
#29 0xb588a52a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#30 0xb588a6ea in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#31 0xb5dbffa0 in QDragManager::drag () from /usr/lib/libQtGui.so.4
#32 0xb5d51c3a in QDrag::exec () from /usr/lib/libQtGui.so.4
#33 0xb5d51ce4 in QDrag::exec () from /usr/lib/libQtGui.so.4
#34 0x081e42ea in ?? ()
#35 0x0826d414 in ?? ()
#36 0xb7515e01 in Q3ScrollView::viewportMouseMoveEvent () from /usr/lib/libQt3Support.so.4
#37 0xb7517bc2 in Q3ScrollView::eventFilter () from /usr/lib/libQt3Support.so.4
#38 0xb588b04a in QCoreApplicationPrivate::sendThroughObjectEventFilters () from /usr/lib/libQtCore.so.4
#39 0xb5d3e8ca in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#40 0xb5d470e1 in QApplication::notify () from /usr/lib/libQtGui.so.4
#41 0xb6857fed in KApplication::notify (this=0xbff4b0d4, receiver=0x867f858, event=0xbff4a7e8) at /build/buildd/kde4libs-4.2.0/kdeui/kernel/kapplication.cpp:307
#42 0xb588be61 in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#43 0xb5d4636e in QApplicationPrivate::sendMouseEvent () from /usr/lib/libQtGui.so.4
#44 0xb5db0656 in ?? () from /usr/lib/libQtGui.so.4
#45 0xb5daf9e5 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#46 0xb5dd97aa in ?? () from /usr/lib/libQtGui.so.4
#47 0xb4c416f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#48 0xb4c44da3 in ?? () from /usr/lib/libglib-2.0.so.0
#49 0xb4c44f61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#50 0xb58b6478 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#51 0xb5dd8ea5 in ?? () from /usr/lib/libQtGui.so.4
#52 0xb588a52a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#53 0xb588a6ea in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#54 0xb588cda5 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#55 0xb5d3e767 in QApplication::exec () from /usr/lib/libQtGui.so.4
#56 0x082b4cfb in ?? ()
#57 0xb54da685 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#58 0x0808db71 in _start ()
Comment 4 Willi Richert 2009-02-17 09:40:11 UTC
sorry, kubuntu 8.10 was it
Comment 5 Nicolas L. 2009-04-19 01:29:09 UTC
i can't reproduce with kde 4.2.2, Qt 4.5 and digikam 0.10 final

can you still reproduce ?
Comment 6 Andi Clemens 2009-05-09 12:51:45 UTC
Will,

does it still crash for you? Can you give us an update here?

Andi
Comment 7 Willi Richert 2009-05-09 13:08:27 UTC
(In reply to comment #6)
> Will,
> 
> does it still crash for you? Can you give us an update here?
> 
> Andi

No. I had updated to Kubuntu Jaunty in the meantime.
Comment 8 Andi Clemens 2009-05-09 13:10:05 UTC
So it is "fixed"... I will close this one now.
Thanks for the update!

Andi