Bug 297415

Summary: Leave a note widget crashes plasma
Product: plasma4 Reporter: Nikola Schnelle <n.schnelle>
Component: widget-notesAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: annma, irvingvladimir2005, rubenalamilla
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu Packages   
OS: Linux   
Latest Commit: Version Fixed In:

Description Nikola Schnelle 2012-04-03 19:42:36 UTC
Application: plasma-desktop (0.4)
KDE Platform Version: 4.8.1 (4.8.1)
Qt Version: 4.8.0
Operating System: Linux 3.2.9-030209-generic i686
Distribution: Ubuntu 11.10

-- Information about the crash:
- What I was doing when the application crashed:
I added leave a note widget to desktop and tried to type a note. Then plasma crashed

-- Backtrace:
Application: Plasma Desktop Shell (plasma-desktop), signal: Segmentation fault
[Current thread is 1 (Thread 0xb1da1720 (LWP 1624))]

Thread 4 (Thread 0xa7c83b70 (LWP 1653)):
#0  0xb2ea2d10 in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0xb634be35 in do_gettime (frac=0xa7c82ff0, sec=0xa7c82fe8) at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0xb6435b56 in QTimerInfoList::updateCurrentTime (this=0xa6f69bc) at kernel/qeventdispatcher_unix.cpp:343
#4  0xb6435eaa in QTimerInfoList::timerWait (this=0xa6f69bc, tm=...) at kernel/qeventdispatcher_unix.cpp:450
#5  0xb64346c3 in timerSourcePrepareHelper (src=<optimized out>, timeout=0xa7c830fc) at kernel/qeventdispatcher_glib.cpp:136
#6  0xb643475d in timerSourcePrepare (source=0xa6f6988, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#7  0xb2de888c in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#8  0xb2de9637 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0xb2de9c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0xb6435217 in QEventDispatcherGlib::processEvents (this=0xa755d48, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#11 0xb6400d6d in QEventLoop::processEvents (this=0xa7c83290, flags=...) at kernel/qeventloop.cpp:149
#12 0xb6401009 in QEventLoop::exec (this=0xa7c83290, flags=...) at kernel/qeventloop.cpp:204
#13 0xb62ea9dc in QThread::exec (this=0xa6fcaa8) at thread/qthread.cpp:501
#14 0xb63de2dd in QInotifyFileSystemWatcherEngine::run (this=0xa6fcaa8) at io/qfilesystemwatcher_inotify.cpp:248
#15 0xb62ede70 in QThreadPrivate::start (arg=0xa6fcaa8) at thread/qthread_unix.cpp:298
#16 0xb2f03d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#17 0xb75e146e in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 3 (Thread 0xa631fb70 (LWP 1656)):
#0  0xb75ef288 in pthread_mutex_lock () from /lib/i386-linux-gnu/libc.so.6
#1  0xb2de870b in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0xb2de9637 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb2de9c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb6435217 in QEventDispatcherGlib::processEvents (this=0xa909878, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#5  0xb6400d6d in QEventLoop::processEvents (this=0xa631f290, flags=...) at kernel/qeventloop.cpp:149
#6  0xb6401009 in QEventLoop::exec (this=0xa631f290, flags=...) at kernel/qeventloop.cpp:204
#7  0xb62ea9dc in QThread::exec (this=0xa906628) at thread/qthread.cpp:501
#8  0xb63de2dd in QInotifyFileSystemWatcherEngine::run (this=0xa906628) at io/qfilesystemwatcher_inotify.cpp:248
#9  0xb62ede70 in QThreadPrivate::start (arg=0xa906628) at thread/qthread_unix.cpp:298
#10 0xb2f03d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#11 0xb75e146e in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 2 (Thread 0xa5b1eb70 (LWP 1657)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2f07a5c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb75ef09c in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb3e65009 in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#4  0xb3e6504f in ?? () from /usr/lib/i386-linux-gnu/libQtScript.so.4
#5  0xb2f03d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#6  0xb75e146e in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 1 (Thread 0xb1da1720 (LWP 1624)):
[KCrash Handler]
#7  0xb63d9c77 in QProcessPrivate::waitForStarted (this=0xca465d8, msecs=30000) at io/qprocess_unix.cpp:1032
#8  0xb638e724 in QProcess::waitForStarted (this=0xbfc9d5c8, msecs=30000) at io/qprocess.cpp:1689
#9  0xa7fab7df in LeaveNote::slotSend (this=0xc573178) at ../../../applets/leavenote/leavenote.cpp:218
#10 0xa7fabb94 in LeaveNote::qt_metacall (this=0xc573178, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0xbfc9d720) at ./leavenote.moc:82
#11 0xb64094fd in metacall (argv=0xbfc9d720, idx=66, cl=QMetaObject::InvokeMetaMethod, object=0xc573178) at kernel/qmetaobject.cpp:245
#12 QMetaObject::metacall (object=0xc573178, cl=QMetaObject::InvokeMetaMethod, idx=66, argv=0xbfc9d720) at kernel/qmetaobject.cpp:240
#13 0xb641921d in QMetaObject::activate (sender=0xc2c2ec8, m=0xb7507204, local_signal_index=2, argv=0x0) at kernel/qobject.cpp:3566
#14 0xb73e3fd5 in Plasma::PushButton::clicked (this=0xc2c2ec8) at ./pushbutton.moc:181
#15 0xb73e46a0 in Plasma::PushButton::qt_metacall (this=0xc2c2ec8, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbfc9d998) at ./pushbutton.moc:107
#16 0xb64094fd in metacall (argv=0xbfc9d998, idx=25, cl=QMetaObject::InvokeMetaMethod, object=0xc2c2ec8) at kernel/qmetaobject.cpp:245
#17 QMetaObject::metacall (object=0xc2c2ec8, cl=QMetaObject::InvokeMetaMethod, idx=25, argv=0xbfc9d998) at kernel/qmetaobject.cpp:240
#18 0xb641921d in QMetaObject::activate (sender=0xca835b8, m=0xb62797c8, local_signal_index=2, argv=0xbfc9d998) at kernel/qobject.cpp:3566
#19 0xb602660d in QAbstractButton::clicked (this=0xca835b8, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:220
#20 0xb5d1a33d in QAbstractButtonPrivate::emitClicked (this=0xbb1a238) at widgets/qabstractbutton.cpp:546
#21 0xb5d1b9ab in QAbstractButtonPrivate::click (this=0xbb1a238) at widgets/qabstractbutton.cpp:539
#22 0xb5d1bc66 in QAbstractButton::mouseReleaseEvent (this=0xca835b8, e=0xc051e38) at widgets/qabstractbutton.cpp:1121
#23 0xb594c9ec in QWidget::event (this=0xca835b8, event=0xc051e38) at kernel/qwidget.cpp:8361
#24 0xb5d1af09 in QAbstractButton::event (this=0xca835b8, e=0xc051e38) at widgets/qabstractbutton.cpp:1080
#25 0xb5dbe728 in QPushButton::event (this=0xca835b8, e=0xc051e38) at widgets/qpushbutton.cpp:683
#26 0xb58f2844 in notify_helper (e=0xc051e38, receiver=0xca835b8, this=0x9a95968) at kernel/qapplication.cpp:4555
#27 QApplicationPrivate::notify_helper (this=0x9a95968, receiver=0xca835b8, e=0xc051e38) at kernel/qapplication.cpp:4527
#28 0xb58f8994 in QApplication::notify (this=0x9a95968, receiver=0xca835b8, e=0xc051e38) at kernel/qapplication.cpp:4098
#29 0xb6a96051 in KApplication::notify (this=0x9a9d288, receiver=0xca835b8, event=0xc051e38) at ../../kdeui/kernel/kapplication.cpp:311
#30 0xb64021de in QCoreApplication::notifyInternal (this=0x9a9d288, receiver=0xca835b8, event=0xc051e38) at kernel/qcoreapplication.cpp:876
#31 0xb58f3805 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#32 QApplicationPrivate::sendMouseEvent (receiver=0xca835b8, event=0xc051e38, alienWidget=0x0, nativeWidget=0xca835b8, buttonDown=0xbfc9e0c8, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3166
#33 0xb5f9011c in QGraphicsProxyWidgetPrivate::sendWidgetMouseEvent (this=0xca82f98, event=0xbfc9e7b8) at graphicsview/qgraphicsproxywidget.cpp:283
#34 0xb5f7190f in QGraphicsItem::sceneEvent (this=0xc2c2ed0, event=0xbfc9e7b8) at graphicsview/qgraphicsitem.cpp:6741
#35 0xb5fced86 in QGraphicsWidget::sceneEvent (this=0xc2c2ec8, event=0xbfc9e7b8) at graphicsview/qgraphicswidget.cpp:1229
#36 0xb5f9b1ae in sendEvent (event=0xbfc9e7b8, item=0xc2c2ed0, this=<optimized out>) at graphicsview/qgraphicsscene.cpp:1217
#37 QGraphicsScenePrivate::sendEvent (this=0x9b97c20, item=0xc2c2ed0, event=0xbfc9e7b8) at graphicsview/qgraphicsscene.cpp:1193
#38 0xb5f9bde3 in QGraphicsScenePrivate::sendMouseEvent (this=0x9b97c20, mouseEvent=0xbfc9e7b8) at graphicsview/qgraphicsscene.cpp:1291
#39 0xb5f9c847 in QGraphicsScene::mouseReleaseEvent (this=0x9b8be60, mouseEvent=0xbfc9e7b8) at graphicsview/qgraphicsscene.cpp:4124
#40 0xb5faaf2c in QGraphicsScene::event (this=0x9b8be60, event=0xbfc9e7b8) at graphicsview/qgraphicsscene.cpp:3454
#41 0xb58f2844 in notify_helper (e=0xbfc9e7b8, receiver=0x9b8be60, this=0x9a95968) at kernel/qapplication.cpp:4555
#42 QApplicationPrivate::notify_helper (this=0x9a95968, receiver=0x9b8be60, e=0xbfc9e7b8) at kernel/qapplication.cpp:4527
#43 0xb58f7c7d in QApplication::notify (this=0xbfc9e7b8, receiver=0x9b8be60, e=0xbfc9e7b8) at kernel/qapplication.cpp:4284
#44 0xb6a96051 in KApplication::notify (this=0x9a9d288, receiver=0x9b8be60, event=0xbfc9e7b8) at ../../kdeui/kernel/kapplication.cpp:311
#45 0xb64021de in QCoreApplication::notifyInternal (this=0x9a9d288, receiver=0x9b8be60, event=0xbfc9e7b8) at kernel/qcoreapplication.cpp:876
#46 0xb58f091d in sendSpontaneousEvent (event=0xbfc9e7b8, receiver=0x9b8be60) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#47 qt_sendSpontaneousEvent (receiver=0x9b8be60, event=0xbfc9e7b8) at kernel/qapplication.cpp:5549
#48 0xb5fc9fb8 in QGraphicsView::mouseReleaseEvent (this=0xb019070, event=0xbfc9eed4) at graphicsview/qgraphicsview.cpp:3338
#49 0xb594c9ec in QWidget::event (this=0xb019070, event=0xbfc9eed4) at kernel/qwidget.cpp:8361
#50 0xb5d66ad5 in QFrame::event (this=0xb019070, e=0xbfc9eed4) at widgets/qframe.cpp:557
#51 0xb5df9ac1 in QAbstractScrollArea::viewportEvent (this=0xb019070, e=0xbfc9eed4) at widgets/qabstractscrollarea.cpp:1043
#52 0xb5fcd27c in QGraphicsView::viewportEvent (this=0xb019070, event=0xbfc9eed4) at graphicsview/qgraphicsview.cpp:2866
#53 0xb5dfc226 in viewportEvent (this=<optimized out>, event=0xbfc9eed4) at widgets/qabstractscrollarea_p.h:100
#54 eventFilter (e=0xbfc9eed4, this=<optimized out>, o=<optimized out>) at widgets/qabstractscrollarea_p.h:116
#55 QAbstractScrollAreaFilter::eventFilter (this=0xae10d98, o=0xa251f60, e=0xbfc9eed4) at widgets/qabstractscrollarea_p.h:115
#56 0xb6402376 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x9a95968, receiver=0xa251f60, event=0xbfc9eed4) at kernel/qcoreapplication.cpp:986
#57 0xb58f2812 in notify_helper (e=0xbfc9eed4, receiver=0xa251f60, this=0x9a95968) at kernel/qapplication.cpp:4551
#58 QApplicationPrivate::notify_helper (this=0x9a95968, receiver=0xa251f60, e=0xbfc9eed4) at kernel/qapplication.cpp:4527
#59 0xb58f8994 in QApplication::notify (this=0x9a95968, receiver=0xa251f60, e=0xbfc9eed4) at kernel/qapplication.cpp:4098
#60 0xb6a96051 in KApplication::notify (this=0x9a9d288, receiver=0xa251f60, event=0xbfc9eed4) at ../../kdeui/kernel/kapplication.cpp:311
#61 0xb64021de in QCoreApplication::notifyInternal (this=0x9a9d288, receiver=0xa251f60, event=0xbfc9eed4) at kernel/qcoreapplication.cpp:876
#62 0xb58f3805 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#63 QApplicationPrivate::sendMouseEvent (receiver=0xa251f60, event=0xbfc9eed4, alienWidget=0xa251f60, nativeWidget=0xb019070, buttonDown=0xb6282cf4, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3166
#64 0xb597cce4 in QETWidget::translateMouseEvent (this=0xb019070, event=0xbfc9f38c) at kernel/qapplication_x11.cpp:4616
#65 0xb597bccd in QApplication::x11ProcessEvent (this=0x9a9d288, event=0xbfc9f38c) at kernel/qapplication_x11.cpp:3732
#66 0xb59a846c in x11EventSourceDispatch (s=0x9aa9c40, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#67 0xb2de925f in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#68 0xb2de9990 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#69 0xb2de9c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#70 0xb64351b7 in QEventDispatcherGlib::processEvents (this=0x9a4dea0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#71 0xb59a806a in QGuiEventDispatcherGlib::processEvents (this=0x9a4dea0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#72 0xb6400d6d in QEventLoop::processEvents (this=0xbfc9f694, flags=...) at kernel/qeventloop.cpp:149
#73 0xb6401009 in QEventLoop::exec (this=0xbfc9f694, flags=...) at kernel/qeventloop.cpp:204
#74 0xb640671a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#75 0xb58f06a4 in QApplication::exec () at kernel/qapplication.cpp:3816
#76 0xb76da72b in kdemain (argc=1, argv=0xbfc9f894) at ../../../../plasma/desktop/shell/main.cpp:120
#77 0x0804850b in main (argc=1, argv=0xbfc9f894) at plasma-desktop_dummy.cpp:3

Reported using DrKonqi
Comment 1 Anne-Marie Mahfouf 2012-04-03 19:53:01 UTC
Do you have KNotes installed on your machine? If so, does it work standalone?
Comment 2 Nikola Schnelle 2012-04-03 20:03:03 UTC
Yes it is installed. 

Plasma crashes when knotes is not running and then I write something in Leave a note widget and then hit "leave note" button. I can always reproduce the crash.

When knotes is running (there is knotes icon in systray) this crash doesn't occur.
Comment 3 Anne-Marie Mahfouf 2012-04-04 07:14:24 UTC
The LeaveNote applet code should start KNotes when it's not running and somehow it fails for you.
Can you try to start KNotes from a terminal with the following:
knotes --skip-note 
and see what happens please.

Note that I am only reading the code where LeaveNote crashes for you, I don't have specific knowledge of it. I'll try to insta
Comment 4 Anne-Marie Mahfouf 2012-04-04 07:16:15 UTC
ll it to try to reproduce.

Another question: did you use LeaveNote in previous KDE versions and did it work?
Comment 5 Nikola Schnelle 2012-04-04 13:29:41 UTC
(In reply to comment #3)
> The LeaveNote applet code should start KNotes when it's not running and
> somehow it fails for you.
> Can you try to start KNotes from a terminal with the following:
> knotes --skip-note 
> and see what happens please.
Doesn't crash.
Comment 6 Nikola Schnelle 2012-04-04 13:33:04 UTC
(In reply to comment #4)

> Another question: did you use LeaveNote in previous KDE versions and did it
> work?

No I have never used KNotes nor Leave a note widget before.

I know how to reproduce crash now (on kde 4.8.1 and on master from neon ppa).
Steps to reproduce:
1) Make sure that KNotes is not running.
2) Add Leave a note widget to desktop.
3) Write something in widget and press "leave note" button.
Comment 7 Anne-Marie Mahfouf 2012-04-04 13:50:16 UTC
Yes, thanks for the follow up, I also reproduced, exactly like you said.
The line that crashes is leavenote.cpp line 218 when the process method is waitForStarted();
Comment 8 Anne-Marie Mahfouf 2012-04-04 14:43:11 UTC
Patch waiting to be reviewed at
https://git.reviewboard.kde.org/r/104484/
Comment 9 Anne-Marie Mahfouf 2012-04-05 09:46:06 UTC
Git commit 124b62ad0873c56e2d734b34d0f727aaa8b3937d by Anne-Marie Mahfouf.
Committed on 05/04/2012 at 11:39.
Pushed by annma into branch 'master'.

Fix QProcess call to start KNotes in LeaveNote

Line 218 in leavenote.cpp knotes.waitForStarted(); was a red herring
4.8.3
104484

M  +1    -3    applets/leavenote/leavenote.cpp

http://commits.kde.org/kdeplasma-addons/124b62ad0873c56e2d734b34d0f727aaa8b3937d
Comment 10 Anne-Marie Mahfouf 2012-05-08 07:51:10 UTC
*** Bug 299596 has been marked as a duplicate of this bug. ***
Comment 11 Anne-Marie Mahfouf 2012-05-08 07:51:56 UTC
*** Bug 299463 has been marked as a duplicate of this bug. ***
Comment 12 Anne-Marie Mahfouf 2012-05-14 17:54:56 UTC
*** Bug 299915 has been marked as a duplicate of this bug. ***