Bug 286844

Summary: Crashes when close Export to VKontakte Web Service window
Product: [Applications] digikam Reporter: Umidjon Almasov <u.almasov>
Component: Plugin-WebService-VkontakteAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: aspotashev, caulier.gilles
Priority: NOR    
Version: 2.1.1   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 2.5.0
Sentry Crash Report:

Description Umidjon Almasov 2011-11-17 13:39:22 UTC
Application: digikam (2.1.1)
KDE Platform Version: 4.7.2 (4.7.2)
Qt Version: 4.7.4
Operating System: Linux 3.0.0-13-generic i686
Distribution: Ubuntu 11.10

-- Information about the crash:
- What I was doing when the application crashed: Run digiKam > select photo from My Albums > menu Export > Export to VKontakte... > click Close button (without uploading) - digiKam crashes. Click Export to VKontakte if not connected to internet, "Network Error" dialog appears ("There was a network error when trying to authenticate with VKontakte web service."), when click OK button in "Network Error" dialog digiKam crashes too.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
[Current thread is 1 (Thread 0xb548b8c0 (LWP 4807))]

Thread 5 (Thread 0xb4603b70 (LWP 4827)):
#0  0x00b1b416 in __kernel_vsyscall ()
#1  0x00933a5c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0x09409cfc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0x08732cc0 in wait (time=4294967295, this=0x99a39b8) at thread/qwaitcondition_unix.cpp:88
#4  QWaitCondition::wait (this=0x99a38e4, mutex=0x99a38e0, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#5  0x081faf45 in Digikam::ScanController::run (this=0x9986490) at /build/buildd/digikam-2.1.1/core/digikam/database/scancontroller.cpp:647
#6  0x087327b3 in QThreadPrivate::start (arg=0x9986490) at thread/qthread_unix.cpp:331
#7  0x0092fd31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#8  0x093fc0ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 4 (Thread 0xb3e02b70 (LWP 4828)):
#0  0x00ca5d10 in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0x087897d5 in do_gettime (frac=0xb3e01e70, sec=0xb3e01e68) at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0x0885c4b6 in QTimerInfoList::updateCurrentTime (this=0xb350187c) at kernel/qeventdispatcher_unix.cpp:339
#4  0x0885c80a in QTimerInfoList::timerWait (this=0xb350187c, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0x0885b053 in timerSourcePrepareHelper (src=<optimized out>, timeout=0xb3e01f7c) at kernel/qeventdispatcher_glib.cpp:136
#6  0x0885b0ed in timerSourcePrepare (source=0xb3501848, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#7  0x04d6388c in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#8  0x04d64637 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0x04d64c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0x0885bb37 in QEventDispatcherGlib::processEvents (this=0x99d73c8, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#11 0x0882c1dd in QEventLoop::processEvents (this=0xb3e02100, flags=...) at kernel/qeventloop.cpp:149
#12 0x0882c421 in QEventLoop::exec (this=0xb3e02100, flags=...) at kernel/qeventloop.cpp:201
#13 0x0872f90b in QThread::exec (this=0x99d55f8) at thread/qthread.cpp:498
#14 0x0880ce2d in QInotifyFileSystemWatcherEngine::run (this=0x99d55f8) at io/qfilesystemwatcher_inotify.cpp:248
#15 0x087327b3 in QThreadPrivate::start (arg=0x99d55f8) at thread/qthread_unix.cpp:331
#16 0x0092fd31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#17 0x093fc0ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 3 (Thread 0xb34ffb70 (LWP 4831)):
#0  0x00b1b416 in __kernel_vsyscall ()
#1  0x00933a5c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0x09409cfc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0x08732cc0 in wait (time=4294967295, this=0x9c85e08) at thread/qwaitcondition_unix.cpp:88
#4  QWaitCondition::wait (this=0x9c85ad8, mutex=0x9c85ad4, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#5  0x0497bf54 in Digikam::ParkingThread::run (this=0x9c85ac8) at /build/buildd/digikam-2.1.1/core/libs/threads/threadmanager.cpp:119
#6  0x087327b3 in QThreadPrivate::start (arg=0x9c85ac8) at thread/qthread_unix.cpp:331
#7  0x0092fd31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#8  0x093fc0ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 2 (Thread 0xb18e2b70 (LWP 4832)):
#0  0x00ca5d10 in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0x087897d5 in do_gettime (frac=0xb18e1e70, sec=0xb18e1e68) at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0x0885c4b6 in QTimerInfoList::updateCurrentTime (this=0x9db27dc) at kernel/qeventdispatcher_unix.cpp:339
#4  0x0885c80a in QTimerInfoList::timerWait (this=0x9db27dc, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0x0885b053 in timerSourcePrepareHelper (src=<optimized out>, timeout=0xb18e1f7c) at kernel/qeventdispatcher_glib.cpp:136
#6  0x0885b0ed in timerSourcePrepare (source=0x9db27a8, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#7  0x04d6388c in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#8  0x04d64637 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0x04d64c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0x0885bb37 in QEventDispatcherGlib::processEvents (this=0x9db2ad8, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#11 0x0882c1dd in QEventLoop::processEvents (this=0xb18e2100, flags=...) at kernel/qeventloop.cpp:149
#12 0x0882c421 in QEventLoop::exec (this=0xb18e2100, flags=...) at kernel/qeventloop.cpp:201
#13 0x0872f90b in QThread::exec (this=0x9daf2c8) at thread/qthread.cpp:498
#14 0x0880ce2d in QInotifyFileSystemWatcherEngine::run (this=0x9daf2c8) at io/qfilesystemwatcher_inotify.cpp:248
#15 0x087327b3 in QThreadPrivate::start (arg=0x9daf2c8) at thread/qthread_unix.cpp:331
#16 0x0092fd31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#17 0x093fc0ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 1 (Thread 0xb548b8c0 (LWP 4807)):
[KCrash Handler]
#7  QHash<QObject*, QWidget*>::findNode (this=<optimized out>, ahp=0x0, akey=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qhash.h:885
#8  0x08848cd8 in contains (this=0xb800538, akey=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qhash.h:872
#9  QSignalMapper::map (this=0xba53074, sender=0xb714868) at kernel/qsignalmapper.cpp:269
#10 0x08848e1e in QSignalMapper::map (this=0xba53074) at kernel/qsignalmapper.cpp:257
#11 0x08848f50 in QSignalMapper::qt_metacall (this=0xba53074, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfcd99b8) at .moc/release-shared/moc_qsignalmapper.cpp:87
#12 0x08833b7d in metacall (argv=0xbfcd99b8, idx=8, cl=QMetaObject::InvokeMetaMethod, object=0xba53074) at kernel/qmetaobject.cpp:237
#13 QMetaObject::metacall (object=0xba53074, cl=QMetaObject::InvokeMetaMethod, idx=8, argv=0xbfcd99b8) at kernel/qmetaobject.cpp:232
#14 0x08842a6a in QMetaObject::activate (sender=0xb714868, m=0x8528e60, local_signal_index=2, argv=0xbfcd99b8) at kernel/qobject.cpp:3278
#15 0x04368e1d in QAbstractButton::clicked (this=0xb714868, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#16 0x0406758d in QAbstractButtonPrivate::emitClicked (this=0xbb51d40) at widgets/qabstractbutton.cpp:546
#17 0x04068bfb in QAbstractButtonPrivate::click (this=0xbb51d40) at widgets/qabstractbutton.cpp:539
#18 0x04068eb6 in QAbstractButton::mouseReleaseEvent (this=0xb714868, e=0xbfcd9f6c) at widgets/qabstractbutton.cpp:1121
#19 0x03cadf98 in QWidget::event (this=0xb714868, event=0xbfcd9f6c) at kernel/qwidget.cpp:8295
#20 0x04068159 in QAbstractButton::event (this=0xb714868, e=0xbfcd9f6c) at widgets/qabstractbutton.cpp:1080
#21 0x0410a798 in QPushButton::event (this=0xb714868, e=0xbfcd9f6c) at widgets/qpushbutton.cpp:683
#22 0x03c53d54 in notify_helper (e=0xbfcd9f6c, receiver=0xb714868, this=0x98717b0) at kernel/qapplication.cpp:4486
#23 QApplicationPrivate::notify_helper (this=0x98717b0, receiver=0xb714868, e=0xbfcd9f6c) at kernel/qapplication.cpp:4458
#24 0x03c59dbb in QApplication::notify (this=0x98717b0, receiver=0xb714868, e=0xbfcd9f6c) at kernel/qapplication.cpp:4047
#25 0x053a8681 in KApplication::notify (this=0xbfcda810, receiver=0xb714868, event=0xbfcd9f6c) at ../../kdeui/kernel/kapplication.cpp:311
#26 0x0882d19e in QCoreApplication::notifyInternal (this=0xbfcda810, receiver=0xb714868, event=0xbfcd9f6c) at kernel/qcoreapplication.cpp:787
#27 0x03c54d15 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#28 QApplicationPrivate::sendMouseEvent (receiver=0xb714868, event=0xbfcd9f6c, alienWidget=0xb714868, nativeWidget=0xba47d48, buttonDown=0x45beeb4, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3146
#29 0x03ce12c4 in QETWidget::translateMouseEvent (this=0xba47d48, event=0xbfcda3ec) at kernel/qapplication_x11.cpp:4568
#30 0x03cdfe4d in QApplication::x11ProcessEvent (this=0xbfcda810, event=0xbfcda3ec) at kernel/qapplication_x11.cpp:3690
#31 0x03d0c24c in x11EventSourceDispatch (s=0x986d700, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#32 0x04d6425f in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#33 0x04d64990 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#34 0x04d64c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#35 0x0885bada in QEventDispatcherGlib::processEvents (this=0x9829038, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#36 0x03d0be3a in QGuiEventDispatcherGlib::processEvents (this=0x9829038, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#37 0x0882c1dd in QEventLoop::processEvents (this=0xbfcda6f4, flags=...) at kernel/qeventloop.cpp:149
#38 0x0882c421 in QEventLoop::exec (this=0xbfcda6f4, flags=...) at kernel/qeventloop.cpp:201
#39 0x0883119d in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#40 0x03c518f4 in QApplication::exec () at kernel/qapplication.cpp:3760
#41 0x080b4b64 in main (argc=175090256, argv=0x0) at /build/buildd/digikam-2.1.1/core/digikam/main/main.cpp:232

Reported using DrKonqi
Comment 1 caulier.gilles 2011-11-17 14:06:14 UTC
I cannot see any code from this plugin in your trace.

Can you try to run digiKam through GDB and get a better backtrace ? Look here for details :

http://www.digikam.org/drupal/contrib

Gilles Caulier
Comment 2 Umidjon Almasov 2011-11-17 14:50:45 UTC
After using

gdb digikam
run

and reproduce crash digiKam freezes. Here is backtrace

(gdb) bt
#0  QHash<QObject*, QString>::findNode (this=0xa5b156c, ahp=0x0, akey=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qhash.h:882
#1  0x02bd1c77 in contains (this=0xa5b156c, akey=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qhash.h:872
#2  QSignalMapper::map (this=0x95a6004, sender=0x9e85048) at kernel/qsignalmapper.cpp:267
#3  0x02bd1e1e in QSignalMapper::map (this=0x95a6004) at kernel/qsignalmapper.cpp:257
#4  0x02bd1f50 in QSignalMapper::qt_metacall (this=0x95a6004, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfffe1d8) at .moc/release-shared/moc_qsignalmapper.cpp:87
#5  0x02bbcb7d in metacall (argv=0xbfffe1d8, idx=8, cl=QMetaObject::InvokeMetaMethod, object=0x95a6004) at kernel/qmetaobject.cpp:237
#6  QMetaObject::metacall (object=0x95a6004, cl=QMetaObject::InvokeMetaMethod, idx=8, argv=0xbfffe1d8) at kernel/qmetaobject.cpp:232
#7  0x02bcba6a in QMetaObject::activate (sender=0x9e85048, m=0x8528e60, local_signal_index=2, argv=0xbfffe1d8) at kernel/qobject.cpp:3278
#8  0x0252de1d in QAbstractButton::clicked (this=0x9e85048, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#9  0x0222c58d in QAbstractButtonPrivate::emitClicked (this=0xa5e4198) at widgets/qabstractbutton.cpp:546
#10 0x0222dbfb in QAbstractButtonPrivate::click (this=0xa5e4198) at widgets/qabstractbutton.cpp:539
#11 0x0222deb6 in QAbstractButton::mouseReleaseEvent (this=0x9e85048, e=0xbfffe78c) at widgets/qabstractbutton.cpp:1121
#12 0x01e72f98 in QWidget::event (this=0x9e85048, event=0xbfffe78c) at kernel/qwidget.cpp:8295
#13 0x0222d159 in QAbstractButton::event (this=0x9e85048, e=0xbfffe78c) at widgets/qabstractbutton.cpp:1080
#14 0x022cf798 in QPushButton::event (this=0x9e85048, e=0xbfffe78c) at widgets/qpushbutton.cpp:683
#15 0x01e18d54 in notify_helper (e=0xbfffe78c, receiver=0x9e85048, this=0x85804d0) at kernel/qapplication.cpp:4486
#16 QApplicationPrivate::notify_helper (this=0x85804d0, receiver=0x9e85048, e=0xbfffe78c) at kernel/qapplication.cpp:4458
#17 0x01e1edbb in QApplication::notify (this=0x85804d0, receiver=0x9e85048, e=0xbfffe78c) at kernel/qapplication.cpp:4047
#18 0x01a6f681 in KApplication::notify (this=0xbffff030, receiver=0x9e85048, event=0xbfffe78c) at ../../kdeui/kernel/kapplication.cpp:311
#19 0x02bb619e in QCoreApplication::notifyInternal (this=0xbffff030, receiver=0x9e85048, event=0xbfffe78c) at kernel/qcoreapplication.cpp:787
#20 0x01e19d15 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#21 QApplicationPrivate::sendMouseEvent (receiver=0x9e85048, event=0xbfffe78c, alienWidget=0x9e85048, nativeWidget=0xa5b8fd0, buttonDown=0x2783eb4, lastMouseReceiver=..., 
    spontaneous=true) at kernel/qapplication.cpp:3146
#22 0x01ea62c4 in QETWidget::translateMouseEvent (this=0xa5b8fd0, event=0xbfffec0c) at kernel/qapplication_x11.cpp:4568
#23 0x01ea4e4d in QApplication::x11ProcessEvent (this=0xbffff030, event=0xbfffec0c) at kernel/qapplication_x11.cpp:3690
#24 0x01ed124c in x11EventSourceDispatch (s=0x8582840, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#25 0x044bd25f in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#26 0x044bd990 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#27 0x044bdc2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#28 0x02be4ada in QEventDispatcherGlib::processEvents (this=0x853f028, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#29 0x01ed0e3a in QGuiEventDispatcherGlib::processEvents (this=0x853f028, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#30 0x02bb51dd in QEventLoop::processEvents (this=0xbfffef14, flags=...) at kernel/qeventloop.cpp:149
#31 0x02bb5421 in QEventLoop::exec (this=0xbfffef14, flags=...) at kernel/qeventloop.cpp:201
#32 0x02bba19d in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#33 0x01e168f4 in QApplication::exec () at kernel/qapplication.cpp:3760
#34 0x080b4b64 in main (argc=163824928, argv=0x0) at /build/buildd/digikam-2.1.1/core/digikam/main/main.cpp:232
Comment 3 Alexander Potashev 2011-12-11 08:53:23 UTC
Git commit 755c8692c1a9a222a53a23ca639272b4eb6bea29 by Alexander Potashev.
Committed on 11/12/2011 at 08:47.
Pushed by aspotashev into branch 'master'.

vkontakte: Do not destroy the export dialog (fix crash)

BUG: 286844

M  +2    -12   vkontakte/plugin_vkontakte.cpp
M  +0    -5    vkontakte/plugin_vkontakte.h

http://commits.kde.org/kipi-plugins/755c8692c1a9a222a53a23ca639272b4eb6bea29