Bug 253916

Summary: Closing the window before the RMB context menu appears causes crash [invalid QMutex::lock, QCoreApplication::postEvent, DolphinContextMenu::openItemContextMenu, DolphinContextMenu::open]
Product: [Applications] dolphin Reporter: Brendon Higgins <brendon>
Component: generalAssignee: Dolphin Bug Assignee <dolphin-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: crash CC: alpha_one_x86, andresbajotierra, erik6350, nkowalski
Priority: NOR    
Version: 16.12.2   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Brendon Higgins 2010-10-12 03:38:41 UTC
Application: dolphin (1.5)
KDE Platform Version: 4.5.1 (KDE 4.5.1)
Qt Version: 4.6.3
Operating System: Linux 2.6.34-1-amd64 x86_64
Distribution: Debian GNU/Linux testing (squeeze)

-- Information about the crash:
It helps if your test machine is slow and/or data is swapped out of RAM to disk. Open dolphin and right click a file, then immediately close the window (I hit the X in the top right corner). If the window closes before dolphin has had a chance to present the context menu, it will crash (taking down any other dolphin window with it).

I did this once by accident, then a second time on purpose, so it seems to be reproduceable. But it can be difficult to get the timing right - if the machine is fast enough the context window will appear practically instantly. Also, each time I tried it I had two dolphin windows open.

(One might suspect this is a Qt bug, but I wouldn't know. Please forward as appropriate.)

The crash can be reproduced every time.

-- Backtrace:
Application: Dolphin (dolphin), signal: Segmentation fault
[KCrash Handler]
#6  QMutex::lock (this=0x5a) at thread/qmutex.cpp:150
#7  0x00007f57ae8fad32 in QCoreApplication::postEvent (receiver=0x16da9b0, event=0x152ba90, priority=0) at kernel/qcoreapplication.cpp:1135
#8  0x00007f57b27e8cff in DolphinContextMenu::openItemContextMenu (this=0x7fffa2622c30) at ../../../../apps/dolphin/src/dolphincontextmenu.cpp:262
#9  0x00007f57b27e9340 in DolphinContextMenu::open (this=0x7fffa2622c30) at ../../../../apps/dolphin/src/dolphincontextmenu.cpp:104
#10 0x00007f57b27d52b5 in DolphinMainWindow::openContextMenu (this=<value optimized out>, item=<value optimized out>, url=<value optimized out>, customActions=...) at ../../../../apps/dolphin/src/dolphinmainwindow.cpp:1207
#11 0x00007f57b27e3439 in DolphinMainWindow::qt_metacall (this=0x7f5798006ad0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa2622e00) at ./dolphinmainwindow.moc:262
#12 0x00007f57ae90e306 in QMetaObject::activate (sender=0x16b5bf0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x152ba80) at kernel/qobject.cpp:3295
#13 0x00007f57b1ad579f in DolphinView::requestContextMenu (this=0x5a, _t1=<value optimized out>, _t2=<value optimized out>, _t3=<value optimized out>) at ./dolphinview.moc:349
#14 0x00007f57b1ad69e9 in DolphinView::openContextMenu (this=0x16b5bf0, pos=..., customActions=...) at ../../../../apps/dolphin/src/dolphinview.cpp:922
#15 0x00007f57b1adbc65 in DolphinView::qt_metacall (this=0x16b5bf0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa2622ff0) at ./dolphinview.moc:223
#16 0x00007f57ae90e306 in QMetaObject::activate (sender=0x16b69a0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x152ba80) at kernel/qobject.cpp:3295
#17 0x00007f57b1ae0dba in DolphinViewController::requestContextMenu (this=0x5a, _t1=<value optimized out>, _t2=<value optimized out>) at ./dolphinviewcontroller.moc:148
#18 0x00007f57b1ae0e9e in DolphinViewController::triggerContextMenuRequest (this=0x16b69a0, pos=..., customActions=...) at ../../../../apps/dolphin/src/dolphinviewcontroller.cpp:79
#19 0x00007f57b1acb1c2 in DolphinIconsView::contextMenuEvent (this=0x16b9600, event=0x7fffa2623d90) at ../../../../apps/dolphin/src/dolphiniconsview.cpp:164
#20 0x00007f57af5b6018 in QWidget::event (this=0x16b9600, event=0x7fffa2623d90) at kernel/qwidget.cpp:8211
#21 0x00007f57af95d706 in QFrame::event (this=0x16b9600, e=0x7fffa2623d90) at widgets/qframe.cpp:557
#22 0x00007f57afa8ddab in QAbstractItemView::viewportEvent (this=0x16b9600, event=0x7fffa2623d90) at itemviews/qabstractitemview.cpp:1615
#23 0x00007f57ae8fa4d7 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<value optimized out>, receiver=0x16b8a90, event=0x7fffa2623d90) at kernel/qcoreapplication.cpp:841
#24 0x00007f57af5602fc in QApplicationPrivate::notify_helper (this=0xcf68b0, receiver=0x16b8a90, e=0x7fffa2623d90) at kernel/qapplication.cpp:4298
#25 0x00007f57af5669d3 in QApplication::notify (this=0x7fffa2624920, receiver=0x16b8a90, e=0x7fffa2623d90) at kernel/qapplication.cpp:3946
#26 0x00007f57b028eb66 in KApplication::notify (this=0x7fffa2624920, receiver=0x16b8a90, event=0x7fffa2623d90) at ../../kdeui/kernel/kapplication.cpp:310
#27 0x00007f57ae8fb0bc in QCoreApplication::notifyInternal (this=0x7fffa2624920, receiver=0x16b8a90, event=0x7fffa2623d90) at kernel/qcoreapplication.cpp:726
#28 0x00007f57af5e60cb in QETWidget::translateMouseEvent (this=<value optimized out>, event=<value optimized out>) at kernel/qapplication_x11.cpp:4385
#29 0x00007f57af5e49dc in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fffa2624540) at kernel/qapplication_x11.cpp:3513
#30 0x00007f57af610592 in x11EventSourceDispatch (s=0xcfa270, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#31 0x00007f57aaf376f2 in g_main_dispatch (context=0xcf9120) at /scratch/build-area/glib2.0-2.24.2/glib/gmain.c:1960
#32 IA__g_main_context_dispatch (context=0xcf9120) at /scratch/build-area/glib2.0-2.24.2/glib/gmain.c:2513
#33 0x00007f57aaf3b568 in g_main_context_iterate (context=0xcf9120, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at /scratch/build-area/glib2.0-2.24.2/glib/gmain.c:2591
#34 0x00007f57aaf3b71c in IA__g_main_context_iteration (context=0xcf9120, may_block=1) at /scratch/build-area/glib2.0-2.24.2/glib/gmain.c:2654
#35 0x00007f57ae9246d3 in QEventDispatcherGlib::processEvents (this=0xccff80, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#36 0x00007f57af61018e in QGuiEventDispatcherGlib::processEvents (this=0x5a, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#37 0x00007f57ae8f99e2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#38 0x00007f57ae8f9dbc in QEventLoop::exec (this=0x7fffa2624860, flags=) at kernel/qeventloop.cpp:201
#39 0x00007f57ae8fea4b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#40 0x00007f57b27ea9ff in kdemain (argc=<value optimized out>, argv=<value optimized out>) at ../../../../apps/dolphin/src/main.cpp:98
#41 0x00007f57b245cc4d in __libc_start_main (main=<value optimized out>, argc=<value optimized out>, ubp_av=<value optimized out>, init=<value optimized out>, fini=<value optimized out>, rtld_fini=<value optimized out>, stack_end=0x7fffa2624e38) at libc-start.c:228
#42 0x0000000000400699 in _start ()

Possible duplicates by query: bug 242649, bug 236369.

Reported using DrKonqi
Comment 1 Peter Penz 2010-10-12 15:29:52 UTC
*** Bug 236369 has been marked as a duplicate of this bug. ***
Comment 2 Peter Penz 2010-10-12 15:52:05 UTC
*** Bug 253592 has been marked as a duplicate of this bug. ***
Comment 3 Frank Reininghaus 2010-11-14 22:27:45 UTC
*** Bug 256825 has been marked as a duplicate of this bug. ***
Comment 4 Dario Andres 2010-11-20 23:49:57 UTC
[Comment from a bug triager]
This bug may be related to bug 212535 (or the other way)
Comment 5 Jeroen van Meeuwen (Kolab Systems) 2012-08-24 16:18:40 UTC
Resetting assignee to default as per bug #305719
Comment 6 Frank Reininghaus 2013-06-26 20:10:32 UTC
Has anyone seen this issue again recently? I'm unable to reproduce this crash. Thanks for your help!
Comment 7 Brendon Higgins 2013-06-27 18:00:41 UTC
I haven't noticed it in a long time, and it seems I'm unable to reproduce it in 4.10.4, now. Closing, for that reason. Thanks!