Summary: | [Frameworks] Dolphin crashes when trying to delete a file in Project Neon 5 | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-kjobwidgets | Reporter: | Rohan Garg <rohan> |
Component: | general | Assignee: | kdelibs bugs <kdelibs-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | faure, frank78ac, kdelibs-bugs, luizluca, luizromario, manugupt1, mklapetek |
Priority: | NOR | Keywords: | investigated |
Version: | 4.99.0 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/kjobwidgets/cb08c792826a698080e2a74f0a033c3a8dd86411 | Version Fixed In: | |
Sentry Crash Report: |
Description
Rohan Garg
2014-05-12 10:50:20 UTC
*** Bug 334820 has been marked as a duplicate of this bug. *** I'll reassign to kjobwidgets - it contains the function KDialogJobUiDelegate::setWindow(QWidget*), where this assert is hit: Q_ASSERT(job()); The KDE 4.x version of that function does not have the assert as far as I can see. If the assert is wanted (is it?), then the client code which uses that function must be changed. I haven't written the code in KIO and lib/konq that uses KDialogJobUiDelegate, but it seems that it has always used the class without a job to ask for delete confirmations. (And moreover, I do not see any way at first sight how a user of these functions/classes could achieve that there is a job when asking for a delete confirmation). (In reply to comment #0) > #10 0x00007f20d6402440 in qt_assert (assertion=0x7f20da62afbe "job()", > file=0x7f20da62af50 > "/build/buildd/project-neon5-kjobwidgets-0.0+git20140512. > 0309+neon4~527b099~14.04/src/kdialogjobuidelegate.cpp", line=121) at > global/qglobal.cpp:2124 > #11 0x00007f20da618159 in KDialogJobUiDelegate::setWindow > (this=0x7fffb7325f30, window=0x19a5900) at > /build/buildd/project-neon5-kjobwidgets-0.0+git20140512. > 0309+neon4~527b099~14.04/src/kdialogjobuidelegate.cpp:121 @David: you added the assert in https://git.reviewboard.kde.org/r/111081/ http://quickgit.kde.org/?p=kdelibs.git&a=commit&h=119b6630f8403262f9a8e0cb2ee408a3cc803e54 Maybe you can have a look? *** Bug 335221 has been marked as a duplicate of this bug. *** *** Bug 335294 has been marked as a duplicate of this bug. *** I've also experienced the same problem. I'm running openSUSE 13.1. Application: Dolphin (dolphin), signal: Segmentation fault Using host libthread_db library "/lib64/libthread_db.so.1". [Current thread is 1 (Thread 0x7fc0478c1880 (LWP 9144))] Thread 3 (Thread 0x7fc0323c2700 (LWP 9145)): #0 0x00007fc04716db3d in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007fc039d840e2 in ?? () from /usr/lib64/libxcb.so.1 #2 0x00007fc039d8577f in xcb_wait_for_event () from /usr/lib64/libxcb.so.1 #3 0x00007fc0340edd59 in QXcbEventReader::run (this=0xf7a010) at qxcbconnection.cpp:1034 #4 0x00007fc040e1106f in QThreadPrivate::start (arg=0xf7a010) at thread/qthread_unix.cpp:345 #5 0x00007fc03c2760db in start_thread (arg=0x7fc0323c2700) at pthread_create.c:309 #6 0x00007fc04717690d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 2 (Thread 0x7fc02d615700 (LWP 9146)): #0 0x00007fc04716db3d in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007fc03bd65604 in ?? () from /usr/lib64/libglib-2.0.so.0 #2 0x00007fc03bd6570c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #3 0x00007fc04104677b in QEventDispatcherGlib::processEvents (this=0x1384340, flags=...) at kernel/qeventdispatcher_glib.cpp:428 #4 0x00007fc040fed95b in QEventLoop::exec (this=this@entry=0x7fc02d614d50, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #5 0x00007fc040e0c3aa in QThread::exec (this=<optimized out>) at thread/qthread.cpp:511 #6 0x00007fc040e1106f in QThreadPrivate::start (arg=0x1316660) at thread/qthread_unix.cpp:345 #7 0x00007fc03c2760db in start_thread (arg=0x7fc02d615700) at pthread_create.c:309 #8 0x00007fc04717690d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 1 (Thread 0x7fc0478c1880 (LWP 9144)): [KCrash Handler] #6 QObject::setProperty (this=this@entry=0x0, name=name@entry=0x7fc044d72415 "widget", value=...) at kernel/qobject.cpp:3789 #7 0x00007fc044d6526b in KJobWidgets::setWindow (job=0x0, widget=0x1240fc0) at /usr/src/debug/kjobwidgets-4.99.0git~20140512~47c7564/src/kjobwidgets.cpp:29 #8 0x00007fc04506317c in KIO::JobUiDelegate::setWindow(QWidget*) () from /usr/lib64/libKF5KIOWidgets.so.5 #9 0x00007fc046e738f0 in KonqOperations::askDeleteConfirmation(KUrl::List const&, int, KonqOperations::ConfirmationType, QWidget*) () from /opt/kf5/lib64/libkonq.so.SOVERSION #10 0x00007fc046bede61 in DolphinView::deleteSelectedItems() () from /opt/kf5/lib64/libdolphinprivate.so.SOVERSION #11 0x00007fc04101e4a3 in call (a=0x7fff7d0f01b0, r=0x1072380, this=0x1073a00) at ../../src/corelib/kernel/qobject_impl.h:132 #12 QMetaObject::activate (sender=sender@entry=0x106a2b0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff7d0f01b0) at kernel/qobject.cpp:3666 #13 0x00007fc04101ee57 in QMetaObject::activate (sender=sender@entry=0x106a2b0, m=m@entry=0x7fc0425cdec0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff7d0f01b0) at kernel/qobject.cpp:3546 #14 0x00007fc041f0ba02 in QAction::triggered (this=this@entry=0x106a2b0, _t1=false) at .moc/moc_qaction.cpp:359 #15 0x00007fc041f0def8 in QAction::activate (this=0x106a2b0, event=<optimized out>) at kernel/qaction.cpp:1175 #16 0x00007fc041f0e024 in QAction::event (this=<optimized out>, e=<optimized out>) at kernel/qaction.cpp:1103 #17 0x00007fc041f12ecc in QApplicationPrivate::notify_helper (this=this@entry=0xf60700, receiver=receiver@entry=0x106a2b0, e=e@entry=0x7fff7d0f0470) at kernel/qapplication.cpp:3501 #18 0x00007fc041f17c46 in QApplication::notify (this=0x7fff7d0f0b40, receiver=0x106a2b0, e=0x7fff7d0f0470) at kernel/qapplication.cpp:3284 #19 0x00007fc040fefa45 in QCoreApplication::notifyInternal (this=0x7fff7d0f0b40, receiver=0x106a2b0, event=event@entry=0x7fff7d0f0470) at kernel/qcoreapplication.cpp:935 #20 0x00007fc0417d2281 in sendEvent (event=0x7fff7d0f0470, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:237 #21 QShortcutMap::dispatchEvent (this=this@entry=0xf607d8, e=e@entry=0x7fff7d0f0730) at kernel/qshortcutmap.cpp:689 #22 0x00007fc0417d239c in QShortcutMap::tryShortcutEvent (this=0xf607d8, o=<optimized out>, e=e@entry=0x7fff7d0f0730) at kernel/qshortcutmap.cpp:360 #23 0x00007fc041f17b06 in QApplication::notify (this=0x7fff7d0f0b40, receiver=0x1336410, e=0x7fff7d0f0730) at kernel/qapplication.cpp:2937 #24 0x00007fc040fefa45 in QCoreApplication::notifyInternal (this=0x7fff7d0f0b40, receiver=receiver@entry=0x1336410, event=event@entry=0x7fff7d0f0730) at kernel/qcoreapplication.cpp:935 #25 0x00007fc0417a387b in sendSpontaneousEvent (event=0x7fff7d0f0730, receiver=0x1336410) at ../../src/corelib/kernel/qcoreapplication.h:240 #26 QGuiApplicationPrivate::processKeyEvent (e=0x11e7830) at kernel/qguiapplication.cpp:1813 #27 0x00007fc0417a7b75 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x11e7830) at kernel/qguiapplication.cpp:1518 #28 0x00007fc04178e8a8 in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at kernel/qwindowsysteminterface.cpp:579 #29 0x00007fc034128170 in userEventSourceDispatch (source=<optimized out>) at eventdispatchers/qeventdispatcher_glib.cpp:78 #30 0x00007fc03bd65316 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #31 0x00007fc03bd65668 in ?? () from /usr/lib64/libglib-2.0.so.0 #32 0x00007fc03bd6570c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0 #33 0x00007fc04104675c in QEventDispatcherGlib::processEvents (this=0xf66270, flags=...) at kernel/qeventdispatcher_glib.cpp:426 #34 0x00007fc040fed95b in QEventLoop::exec (this=this@entry=0x7fff7d0f0a00, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #35 0x00007fc040ff4fb6 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1188 #36 0x00007fc04749effb in kdemain () from /opt/kf5/lib64/libkdeinit4_dolphin.so #37 0x00007fc0470b0be5 in __libc_start_main (main=0x400830 <main>, argc=5, argv=0x7fff7d0f0c78, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff7d0f0c68) at libc-start.c:269 #38 0x0000000000400861 in _start () Thanks, but I think that further backtraces are not needed - it seems pretty clear why the crash happens. FWIW, I proposed a patch for kjobwidgets that fixes the issue some time ago, but I'm not sure if it's the 'correct' approach: https://git.reviewboard.kde.org/r/118269/ Git commit cb08c792826a698080e2a74f0a033c3a8dd86411 by David Faure. Committed on 01/06/2014 at 15:28. Pushed by dfaure into branch 'master'. Make window()/setWindow() work without a job, for the case of askDeleteConfirmation M +14 -5 src/kdialogjobuidelegate.cpp http://commits.kde.org/kjobwidgets/cb08c792826a698080e2a74f0a033c3a8dd86411 Confirming the fix. Thanks |