Bug 319336

Summary: dolphin crashed
Product: [Unmaintained] nepomuk Reporter: Дмитрий <isakov.dmitriy>
Component: widgets - TagWidgetAssignee: Nepomuk Bugs Coordination <nepomuk-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: frank78ac, me, nepomuk-bugs
Priority: NOR    
Version: 4.10.2   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.10.4
Sentry Crash Report:

Description Дмитрий 2013-05-04 21:23:45 UTC
Application: dolphin (2.2)
KDE Platform Version: 4.10.2
Qt Version: 4.8.4
Operating System: Linux 3.8.0-19-generic i686
Distribution: Ubuntu 13.04

-- Information about the crash:
- What I was doing when the application crashed: I open 'properties' of file and tab to the 'details'(information), and then I click 'add comment' dolphin crash.

-- Backtrace:
Application: Dolphin (dolphin), signal: Aborted
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0xb1035740 (LWP 30245))]

Thread 3 (Thread 0xae6f4b40 (LWP 30878)):
#0  0xb4bbcc34 in __pthread_mutex_unlock_usercnt () from /lib/i386-linux-gnu/libpthread.so.0
#1  0xb7627fc4 in pthread_mutex_unlock () from /lib/i386-linux-gnu/libc.so.6
#2  0xb4b23d70 in g_mutex_unlock () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb4ae01c9 in g_main_context_check () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb4ae0662 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb4ae0831 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#6  0xb58cbc3f in QEventDispatcherGlib::processEvents (this=0xadd00468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#7  0xb58983ec in QEventLoop::processEvents (this=this@entry=0xae6f4228, flags=...) at kernel/qeventloop.cpp:149
#8  0xb58986e1 in QEventLoop::exec (this=this@entry=0xae6f4228, flags=...) at kernel/qeventloop.cpp:204
#9  0xb5783fec in QThread::exec (this=this@entry=0x9f58198) at thread/qthread.cpp:542
#10 0xb5877f2d in QInotifyFileSystemWatcherEngine::run (this=0x9f58198) at io/qfilesystemwatcher_inotify.cpp:256
#11 0xb5786b18 in QThreadPrivate::start (arg=0x9f58198) at thread/qthread_unix.cpp:338
#12 0xb4bb9d78 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#13 0xb761a3de in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 2 (Thread 0xadbd7b40 (LWP 30945)):
#0  0xb778f424 in __kernel_vsyscall ()
#1  0xb762d8e2 in clock_gettime () from /lib/i386-linux-gnu/libc.so.6
#2  0xb57e50d5 in do_gettime (frac=0xadbd6f60, sec=0xadbd6f58) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0xb58cc80e in QTimerInfoList::updateCurrentTime (this=this@entry=0xad202074) at kernel/qeventdispatcher_unix.cpp:354
#5  0xb58ccb9a in QTimerInfoList::timerWait (this=0xad202074, tm=...) at kernel/qeventdispatcher_unix.cpp:461
#6  0xb58cb373 in timerSourcePrepareHelper (src=<optimized out>, timeout=0xadbd708c) at kernel/qeventdispatcher_glib.cpp:136
#7  0xb58cb40d in timerSourcePrepare (source=0xad202040, timeout=0xadbd708c) at kernel/qeventdispatcher_glib.cpp:169
#8  0xb4adfd21 in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0xb4ae05cf in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0xb4ae0831 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#11 0xb58cbc3f in QEventDispatcherGlib::processEvents (this=0xad200468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#12 0xb58983ec in QEventLoop::processEvents (this=this@entry=0xadbd7228, flags=...) at kernel/qeventloop.cpp:149
#13 0xb58986e1 in QEventLoop::exec (this=this@entry=0xadbd7228, flags=...) at kernel/qeventloop.cpp:204
#14 0xb5783fec in QThread::exec (this=this@entry=0xa1acfc0) at thread/qthread.cpp:542
#15 0xb5877f2d in QInotifyFileSystemWatcherEngine::run (this=0xa1acfc0) at io/qfilesystemwatcher_inotify.cpp:256
#16 0xb5786b18 in QThreadPrivate::start (arg=0xa1acfc0) at thread/qthread_unix.cpp:338
#17 0xb4bb9d78 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#18 0xb761a3de in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 1 (Thread 0xb1035740 (LWP 30245)):
[KCrash Handler]
#7  0xb778f424 in __kernel_vsyscall ()
#8  0xb7557b1f in raise () from /lib/i386-linux-gnu/libc.so.6
#9  0xb755b0b3 in abort () from /lib/i386-linux-gnu/libc.so.6
#10 0xb7594ab5 in ?? () from /lib/i386-linux-gnu/libc.so.6
#11 0xb759f7e2 in ?? () from /lib/i386-linux-gnu/libc.so.6
#12 0xb75a0530 in ?? () from /lib/i386-linux-gnu/libc.so.6
#13 0xb5600b4f in operator delete(void*) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#14 0xb55163aa in KEditTagsDialog::~KEditTagsDialog (this=0xbff54648, __in_chrg=<optimized out>) at ../../nepomuk/ui/kedittagsdialog.cpp:104
#15 0xb58adb49 in QObjectPrivate::deleteChildren (this=this@entry=0xa9100f0) at kernel/qobject.cpp:1907
#16 0xb5e64308 in QWidget::~QWidget (this=0xa569be0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1681
#17 0xb5513815 in Nepomuk::TagWidget::~TagWidget (this=0xa569be0, __in_chrg=<optimized out>) at ../../nepomuk/ui/tagwidget.cpp:265
#18 0xb5513872 in Nepomuk::TagWidget::~TagWidget (this=0xa569be0, __in_chrg=<optimized out>) at ../../nepomuk/ui/tagwidget.cpp:268
#19 0xb6dd94d6 in KFileMetaDataWidget::Private::deleteRows (this=this@entry=0xa85e988) at ../../kio/kfile/kfilemetadatawidget.cpp:184
#20 0xb6dd9d14 in KFileMetaDataWidget::Private::slotLoadingFinished (this=0xa85e988) at ../../kio/kfile/kfilemetadatawidget.cpp:192
#21 0xb6dda8af in KFileMetaDataWidget::qt_static_metacall (_o=0xa85be50, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbff53aec) at ./kfilemetadatawidget.moc:65
#22 0xb58afb56 in QMetaObject::activate (sender=sender@entry=0xa85e9f8, m=m@entry=0xb6eb43a8 <KFileMetaDataProvider::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3539
#23 0xb6e13dc5 in KFileMetaDataProvider::loadingFinished (this=0xa85e9f8) at ./kfilemetadataprovider_p.moc:124
#24 0xb6e14aec in KFileMetaDataProvider::Private::slotLoadingFinished (this=0xa85ecd8) at ../../kio/kfile/kfilemetadataprovider.cpp:245
#25 0xb58afb56 in QMetaObject::activate (sender=sender@entry=0x9f0bd28, m=m@entry=0xb6eb4218 <KFileMetaDataReader::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3539
#26 0xb6e12a05 in KFileMetaDataReader::finished (this=0x9f0bd28) at ./kfilemetadatareader_p.moc:102
#27 0xb6e12e8b in KFileMetaDataReader::Private::slotLoadingFinished (this=0xa8861e8, exitCode=0, exitStatus=QProcess::NormalExit) at ../../kio/kfile/kfilemetadatareader.cpp:96
#28 0xb58afb56 in QMetaObject::activate (sender=sender@entry=0xa678d80, m=m@entry=0xb5a024fc <QProcess::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0xbff53e34) at kernel/qobject.cpp:3539
#29 0xb582722d in QProcess::finished (this=this@entry=0xa678d80, _t1=0, _t2=QProcess::NormalExit) at .moc/release-shared/moc_qprocess.cpp:156
#30 0xb582b9c4 in QProcessPrivate::_q_processDied (this=0xa9a4238) at io/qprocess.cpp:1068
#31 0xb582ba57 in qt_static_metacall (_a=0xbff53f88, _id=13, _o=0xa678d80, _c=<optimized out>) at .moc/release-shared/moc_qprocess.cpp:92
#32 QProcess::qt_static_metacall (_o=0xa678d80, _c=QMetaObject::InvokeMetaMethod, _id=13, _a=0xbff53f88) at .moc/release-shared/moc_qprocess.cpp:69
#33 0xb58afb56 in QMetaObject::activate (sender=sender@entry=0xa88acd0, m=m@entry=0xb5a04458 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0xbff53f88) at kernel/qobject.cpp:3539
#34 0xb5902d05 in QSocketNotifier::activated (this=this@entry=0xa88acd0, _t1=30) at .moc/release-shared/moc_qsocketnotifier.cpp:103
#35 0xb58b8cff in QSocketNotifier::event (this=0xa88acd0, e=0xbff543b4) at kernel/qsocketnotifier.cpp:317
#36 0xb5e0cc7c in QApplicationPrivate::notify_helper (this=0x9dce790, receiver=0xa88acd0, e=0xbff543b4) at kernel/qapplication.cpp:4567
#37 0xb5e0fb94 in QApplication::notify (this=0xbff543b4, receiver=0xa88acd0, e=0xbff543b4) at kernel/qapplication.cpp:3949
#38 0xb6986d01 in KApplication::notify (this=0xbff559d0, receiver=0xa88acd0, event=0xbff543b4) at ../../kdeui/kernel/kapplication.cpp:311
#39 0xb589990e in QCoreApplication::notifyInternal (this=0xbff559d0, receiver=0xa88acd0, event=event@entry=0xbff543b4) at kernel/qcoreapplication.cpp:946
#40 0xb58cc2d8 in sendEvent (event=0xbff543b4, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#41 socketNotifierSourceDispatch (source=0x9dce8d0) at kernel/qeventdispatcher_glib.cpp:110
#42 0xb4ae03b3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#43 0xb4ae0750 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#44 0xb4ae0831 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#45 0xb58cbc3f in QEventDispatcherGlib::processEvents (this=this@entry=0x9da0d60, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#46 0xb5ec3a5a in QGuiEventDispatcherGlib::processEvents (this=0x9da0d60, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#47 0xb58983ec in QEventLoop::processEvents (this=this@entry=0xbff545f8, flags=...) at kernel/qeventloop.cpp:149
#48 0xb58986e1 in QEventLoop::exec (this=this@entry=0xbff545f8, flags=...) at kernel/qeventloop.cpp:204
#49 0xb634d9fd in QDialog::exec (this=this@entry=0xbff54648) at dialogs/qdialog.cpp:554
#50 0xb551489c in Nepomuk::TagWidget::slotShowAll (this=this@entry=0xa569be0) at ../../nepomuk/ui/tagwidget.cpp:383
#51 0xb5515134 in qt_static_metacall (_a=0xbff547b8, _id=9, _o=0xa569be0, _c=<optimized out>) at ./tagwidget.moc:81
#52 Nepomuk::TagWidget::qt_static_metacall (_o=0xa569be0, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0xbff547b8) at ./tagwidget.moc:66
#53 0xb58afb56 in QMetaObject::activate (sender=sender@entry=0xa912b58, m=m@entry=0xb6788c1c <QLabel::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0xbff547b8) at kernel/qobject.cpp:3539
#54 0xb627c2b5 in QLabel::linkActivated (this=this@entry=0xa912b58, _t1=...) at .moc/release-shared/moc_qlabel.cpp:194
#55 0xb627eadf in qt_static_metacall (_a=0xbff548c8, _id=0, _o=0xa912b58, _c=<optimized out>) at .moc/release-shared/moc_qlabel.cpp:87
#56 QLabel::qt_static_metacall (_o=0xa912b58, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0xbff548c8) at .moc/release-shared/moc_qlabel.cpp:81
#57 0xb58afb56 in QMetaObject::activate (sender=sender@entry=0xa321758, m=m@entry=0xb6786194 <QTextControl::staticMetaObject>, local_signal_index=local_signal_index@entry=13, argv=argv@entry=0xbff548c8) at kernel/qobject.cpp:3539
#58 0xb608d3e5 in QTextControl::linkActivated (this=0xa321758, _t1=...) at .moc/release-shared/moc_qtextcontrol_p.cpp:336
#59 0xb6090b55 in QTextControlPrivate::activateLinkUnderCursor (this=0xa910e50, href=...) at text/qtextcontrol.cpp:2734
#60 0xb609535c in QTextControlPrivate::mouseReleaseEvent (this=0xa910e50, e=0x0, button=Qt::LeftButton, pos=..., modifiers=<error reading variable: Cannot access memory at address 0x0>, buttons=<error reading variable: Cannot access memory at address 0x0>, globalPos=...) at text/qtextcontrol.cpp:1754
#61 0xb6096baf in QTextControl::processEvent (this=0xa321758, e=0xbff551e4, matrix=..., contextWidget=0xa912b58) at text/qtextcontrol.cpp:961
#62 0xb6089b34 in QTextControl::processEvent (this=0xa321758, e=e@entry=0xbff551e4, coordinateOffset=..., contextWidget=contextWidget@entry=0xa912b58) at text/qtextcontrol.cpp:906
#63 0xb627be2b in QLabelPrivate::sendControlEvent (this=0xa910ba0, e=0xbff551e4) at widgets/qlabel.cpp:1651
#64 0xb5e63710 in QWidget::event (this=0xa912b58, event=0xbff551e4) at kernel/qwidget.cpp:8375
#65 0xb62772f5 in QFrame::event (this=this@entry=0xa912b58, e=e@entry=0xbff551e4) at widgets/qframe.cpp:557
#66 0xb627e610 in QLabel::event (this=0xa912b58, e=0xbff551e4) at widgets/qlabel.cpp:1073
#67 0xb5e0cc7c in QApplicationPrivate::notify_helper (this=0x9dce790, receiver=0xa912b58, e=0xbff551e4) at kernel/qapplication.cpp:4567
#68 0xb5e10587 in QApplication::notify (this=0x9dce790, receiver=0xa912b58, e=0xbff551e4) at kernel/qapplication.cpp:4110
#69 0xb6986d01 in KApplication::notify (this=0xbff559d0, receiver=0xa912b58, event=0xbff551e4) at ../../kdeui/kernel/kapplication.cpp:311
#70 0xb589990e in QCoreApplication::notifyInternal (this=0xbff559d0, receiver=receiver@entry=0xa912b58, event=event@entry=0xbff551e4) at kernel/qcoreapplication.cpp:946
#71 0xb5e13823 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#72 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0xa912b58, event=event@entry=0xbff551e4, alienWidget=alienWidget@entry=0xa912b58, nativeWidget=nativeWidget@entry=0xa81caa8, buttonDown=buttonDown@entry=0xb679fd14 <qt_button_down>, lastMouseReceiver=..., spontaneous=spontaneous@entry=true) at kernel/qapplication.cpp:3178
#73 0xb5e95785 in QETWidget::translateMouseEvent (this=0xa81caa8, event=0xbff5560c) at kernel/qapplication_x11.cpp:4631
#74 0xb5e94575 in QApplication::x11ProcessEvent (this=0xbff559d0, event=0xbff5560c) at kernel/qapplication_x11.cpp:3746
#75 0xb5ec3954 in x11EventSourceDispatch (s=0x9dc90b0, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#76 0xb4ae03b3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#77 0xb4ae0750 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#78 0xb4ae0831 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#79 0xb58cbc3f in QEventDispatcherGlib::processEvents (this=this@entry=0x9da0d60, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#80 0xb5ec3a5a in QGuiEventDispatcherGlib::processEvents (this=0x9da0d60, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#81 0xb58983ec in QEventLoop::processEvents (this=this@entry=0xbff55908, flags=...) at kernel/qeventloop.cpp:149
#82 0xb58986e1 in QEventLoop::exec (this=this@entry=0xbff55908, flags=...) at kernel/qeventloop.cpp:204
#83 0xb589e3fa in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#84 0xb5e0afc4 in QApplication::exec () at kernel/qapplication.cpp:3828
#85 0xb7734c47 in kdemain (argc=6, argv=0xbff55ab4) at ../../../dolphin/src/main.cpp:90
#86 0x0804855b in main (argc=6, argv=0xbff55ab4) at dolphin_dummy.cpp:3

Possible duplicates by query: bug 276208.

Reported using DrKonqi
Comment 1 Frank Reininghaus 2013-05-05 14:31:28 UTC
Thanks for the bug report. Looks like a Nepomuk issue. It's actually supposed to be fixed in 4.10.2 if I understand correctly.
Comment 2 Дмитрий 2013-05-06 13:31:41 UTC
Kubuntu13.04


Воскресенье,  5 мая 2013, 14:31 UTC от Frank Reininghaus <frank78ac@googlemail.com>:
>https://bugs.kde.org/show_bug.cgi?id=319336
>
>Frank Reininghaus < frank78ac@googlemail.com > changed:
>
>           What    |Removed                     |Added
>----------------------------------------------------------------------------
>                 CC|  |frank78ac@googlemail.com
>          Component|general                     |widgets - TagWidget
>            Version|2.2                         |4.10.2
>           Assignee|dolphin-bugs-null@kde.org  |nepomuk-bugs@kde.org
>            Product|dolphin                     |nepomuk
>
>--- Comment #1 from Frank Reininghaus < frank78ac@googlemail.com > ---
>Thanks for the bug report. Looks like a Nepomuk issue. It's actually supposed
>to be fixed in 4.10.2 if I understand correctly.
>
>-- 
>You are receiving this mail because:
>You reported the bug.
Comment 3 Vishesh Handa 2013-05-28 14:29:00 UTC
Git commit 2725226ab105705a88baa1e3c53c1d7d7300722f by Vishesh Handa.
Committed on 28/05/2013 at 16:21.
Pushed by vhanda into branch 'KDE/4.10'.

KEditTagsDialog: Avoid using QDialog::exec

QDialog::exec runs an event loop at waits for the dialog to be closed.
Running another event loop is generally not recommended cause it can
result in *other* events being process which one might not want.

In this particular case the ResourceLoader, which runs in another
thread, would emit the finished signal would result in the
FileMetadataWidget deleting all its previous content, which would
delete the TagWidget and its children aka the KEditTagsDialog => CRASH

Instead we now set the windowModality and use QDialog::open, which
returns immediately and then connect to the finished signal.

Backported from nepomuk-widgets 2080bc1d4fe7c249c28930b18f03741c53025b13

M  +14   -3    nepomuk/ui/tagwidget.cpp
M  +1    -0    nepomuk/ui/tagwidget.h
M  +3    -0    nepomuk/ui/tagwidget_p.h

http://commits.kde.org/kdelibs/2725226ab105705a88baa1e3c53c1d7d7300722f