Bug 202364 - plasma crash on posting via microblogger plasmoid
Summary: plasma crash on posting via microblogger plasmoid
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Unmaintained
Component: general (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-08-03 05:34 UTC by Rex Dieter
Modified: 2009-08-03 19:43 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rex Dieter 2009-08-03 05:34:33 UTC
Application that crashed: plasma-desktop
Version of the application: 0.3
KDE Version: 4.3.00 (KDE 4.3.0)
Qt Version: 4.5.2
Operating System: Linux 2.6.29.6-217.2.3.fc11.x86_64 x86_64
Distribution: "Fedora release 11 (Leonidas)"

What I was doing when the application crashed:
Using freshly built kde-4.3.0, along with recent fix for microblogger plasmoid, 
http://websvn.kde.org/?view=rev&revision=1004203
upon any attempt at posting status (I'm using identi.ca), results in plasma-desktop crash.  backtrace attached.

 -- Backtrace:
Application: Plasma Workspace (kdeinit4), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fa6e5fe6820 (LWP 8800))]

Thread 2 (Thread 0x7fa6bdcb1910 (LWP 8803)):
#0  0x00007fa6e57d82f9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fa6e5a43d7b in QWaitConditionPrivate::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fa6e467edac in QHostInfoAgent::run (this=0x1ff5510) at kernel/qhostinfo.cpp:260
#4  0x00007fa6e5a42cd5 in QThreadPrivate::start (arg=0x1ff5510) at thread/qthread_unix.cpp:188
#5  0x00007fa6e57d386a in start_thread () from /lib64/libpthread.so.0
#6  0x00007fa6e231825d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fa6e5fe6820 (LWP 8800)):
[KCrash Handler]
#5  0x00007fa6e5b3ece4 in QMetaObject::activate (sender=0x34e6ee0, m=<value optimized out>, local_signal_index=3, argv=0x7fff8eab9590) at kernel/qobject.cpp:3183
#6  0x00007fa6e543f322 in KJob::result (this=0x7fa6e57be5a0, _t1=0x34e6ee0) at /usr/src/debug/kdelibs-4.3.0/x86_64-redhat-linux-gnu/kdecore/kjob.moc:188
#7  0x00007fa6e543f69f in KJob::emitResult (this=0x34e6ee0) at /usr/src/debug/kdelibs-4.3.0/kdecore/jobs/kjob.cpp:304
#8  0x00007fa6b75994e2 in TweetJob::result (this=0x34e6ee0, job=0x23ae2f0) at /usr/src/debug/kdeplasma-addons-4.3.0/dataengines/microblog/timelinesource.cpp:50
#9  0x00007fa6b7599540 in TweetJob::qt_metacall (this=0x34e6ee0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff8eab9720)
    at /usr/src/debug/kdeplasma-addons-4.3.0/x86_64-redhat-linux-gnu/dataengines/microblog/timelinesource.moc:68
#10 0x00007fa6e5b3dfdc in QMetaObject::activate (sender=0x23ae2f0, from_signal_index=<value optimized out>, to_signal_index=<value optimized out>, argv=0x7) at kernel/qobject.cpp:3113
#11 0x00007fa6e543f322 in KJob::result (this=0x7fa6e57be5a0, _t1=0x23ae2f0) at /usr/src/debug/kdelibs-4.3.0/x86_64-redhat-linux-gnu/kdecore/kjob.moc:188
#12 0x00007fa6e543f69f in KJob::emitResult (this=0x23ae2f0) at /usr/src/debug/kdelibs-4.3.0/kdecore/jobs/kjob.cpp:304
#13 0x00007fa6e49fbcd3 in KIO::SimpleJob::slotFinished (this=0x23ae2f0) at /usr/src/debug/kdelibs-4.3.0/kio/kio/job.cpp:477
#14 0x00007fa6e49fc183 in KIO::TransferJob::slotFinished (this=0x23ae2f0) at /usr/src/debug/kdelibs-4.3.0/kio/kio/job.cpp:948
#15 0x00007fa6e49faaa1 in KIO::TransferJob::qt_metacall (this=0x23ae2f0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff8eab9b40)
    at /usr/src/debug/kdelibs-4.3.0/x86_64-redhat-linux-gnu/kio/jobclasses.moc:343
#16 0x00007fa6e5b3dfdc in QMetaObject::activate (sender=0x33e9fd0, from_signal_index=<value optimized out>, to_signal_index=<value optimized out>, argv=0x7) at kernel/qobject.cpp:3113
#17 0x00007fa6e4abd261 in KIO::SlaveInterface::dispatch (this=0x33e9fd0, _cmd=104, rawdata=@0x7fff8eab9d90) at /usr/src/debug/kdelibs-4.3.0/kio/kio/slaveinterface.cpp:175
#18 0x00007fa6e4ab9c13 in KIO::SlaveInterface::dispatch (this=0x33e9fd0) at /usr/src/debug/kdelibs-4.3.0/kio/kio/slaveinterface.cpp:91
#19 0x00007fa6e4aaccd2 in KIO::Slave::gotInput (this=0x33e9fd0) at /usr/src/debug/kdelibs-4.3.0/kio/kio/slave.cpp:322
#20 0x00007fa6e4aaecdc in KIO::Slave::qt_metacall (this=0x33e9fd0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff8eab9f00)
    at /usr/src/debug/kdelibs-4.3.0/x86_64-redhat-linux-gnu/kio/slave.moc:76
#21 0x00007fa6e5b3dfdc in QMetaObject::activate (sender=0x33921b0, from_signal_index=<value optimized out>, to_signal_index=<value optimized out>, argv=0x7) at kernel/qobject.cpp:3113
#22 0x00007fa6e49c98a7 in KIO::ConnectionPrivate::dequeue (this=0x32f0960) at /usr/src/debug/kdelibs-4.3.0/kio/kio/connection.cpp:82
#23 0x00007fa6e49c99cd in KIO::Connection::qt_metacall (this=0x33921b0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x2a2be60)
    at /usr/src/debug/kdelibs-4.3.0/x86_64-redhat-linux-gnu/kio/connection.moc:73
#24 0x00007fa6e5b38309 in QObject::event (this=0x33921b0, e=0x31837a0) at kernel/qobject.cpp:1111
#25 0x00007fa6e2edee2c in QApplicationPrivate::notify_helper (this=0x13107e0, receiver=0x33921b0, e=0x31837a0) at kernel/qapplication.cpp:4056
#26 0x00007fa6e2ee5e5e in QApplication::notify (this=0x1307800, receiver=0x33921b0, e=0x31837a0) at kernel/qapplication.cpp:4021
#27 0x00007fa6e3fbe546 in KApplication::notify (this=0x1307800, receiver=0x33921b0, event=0x31837a0) at /usr/src/debug/kdelibs-4.3.0/kdeui/kernel/kapplication.cpp:302
#28 0x00007fa6e5b28cbc in QCoreApplication::notifyInternal (this=0x1307800, receiver=0x33921b0, event=0x31837a0) at kernel/qcoreapplication.cpp:610
#29 0x00007fa6e5b298c8 in QCoreApplication::sendEvent (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.h:213
#30 QCoreApplicationPrivate::sendPostedEvents (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.cpp:1247
#31 0x00007fa6e5b51743 in QCoreApplication::sendPostedEvents () at kernel/qcoreapplication.h:218
#32 postEventSourceDispatch () at kernel/qeventdispatcher_glib.cpp:210
#33 0x00007fa6e1972abe in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#34 0x00007fa6e1976278 in ?? () from /lib64/libglib-2.0.so.0
#35 0x00007fa6e19763a0 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#36 0x00007fa6e5b513b6 in QEventDispatcherGlib::processEvents (this=0x1276e50, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:327
#37 0x00007fa6e2f71b8e in QGuiEventDispatcherGlib::processEvents (this=0x7fa6e57be5a0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#38 0x00007fa6e5b275f2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 36}) at kernel/qeventloop.cpp:149
#39 0x00007fa6e5b279c4 in QEventLoop::exec (this=0x7fff8eaba800, flags={i = 0}) at kernel/qeventloop.cpp:201
#40 0x00007fa6e5b29b79 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#41 0x00007fa6d35c7dbf in kdemain () from /usr/lib64/libkdeinit4_plasma-desktop.so
#42 0x00000000004068b3 in launch (argc=1, _name=<value optimized out>, args=<value optimized out>, cwd=<value optimized out>, envc=0, envs=<value optimized out>, reset_env=false, tty=0x0, 
    avoid_loops=false, startup_id_str=0x409da5 "0") at /usr/src/debug/kdelibs-4.3.0/kinit/kinit.cpp:676
#43 0x00000000004075a0 in handle_launcher_request (sock=7, who=<value optimized out>) at /usr/src/debug/kdelibs-4.3.0/kinit/kinit.cpp:1168
#44 0x0000000000407a51 in handle_requests (waitForPid=0) at /usr/src/debug/kdelibs-4.3.0/kinit/kinit.cpp:1361
#45 0x00000000004086b2 in main (argc=2, argv=<value optimized out>, envp=<value optimized out>) at /usr/src/debug/kdelibs-4.3.0/kinit/kinit.cpp:1788

Reported using DrKonqi
Comment 1 Aaron J. Seigo 2009-08-03 06:46:24 UTC
that backtrace really doesn't make much sense to me on first look-over.

the KIO job is signalling to TweetJob that it's done; TweetJob then calls setResult on itself with setResult(!job->error()) which causes KJob (which TweetJob is a subclass of) to emit the result signal and then it crashes ... in QObject while trying to emit the signal?

can you double check your build before i go off and investigate this more? thanks.
Comment 2 Juha Tuomala 2009-08-03 11:09:13 UTC
Is this twitter plasmoid or something else?
Comment 3 Rex Dieter 2009-08-03 14:48:41 UTC
Yeah, the twitter plasmoid was enhanced, added identi.ca support, renamed microblogger for kde-4.3.0

Oops, seems I was missing kdebase-workspace-debuginfo, I'll double-check the build.log's too, too make sure the builds were kosher.
Comment 4 Juha Tuomala 2009-08-03 15:01:52 UTC
In that case I see this too. Thou I'm not that sure do I support fixing this, since pressing enter in microblogger's write-area, it is the easiest way to crash whole plasma after it's notification thingy (blue ball with i) hangs (pretty soon after running awhile) and needs restart.
Comment 5 Rex Dieter 2009-08-03 17:00:29 UTC
Here's a new kcrash report, with freshly built kdebase-workspace, kdeplasma-addons, and the full -debuginfo stack installed this time,

Application: Plasma Workspace (kdeinit4), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fbf7d5d5820 (LWP 6001))]

Thread 4 (Thread 0x7fbf552a0910 (LWP 6004)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fbf7d032d7b in QWaitConditionPrivate::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fbf7bc6ddac in QHostInfoAgent::run (this=0x17c9380) at kernel/qhostinfo.cpp:260
#4  0x00007fbf7d031cd5 in QThreadPrivate::start (arg=0x17c9380) at thread/qthread_unix.cpp:188
#5  0x00007fbf7cdc286a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00007fbf7990725d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fbf4dd9f910 (LWP 6269)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:220
#1  0x00007fbf7d032ce2 in QWaitConditionPrivate::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:85
#2  QWaitCondition::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fbf7d028e22 in QThreadPoolThread::run (this=<value optimized out>) at concurrent/qthreadpool.cpp:140
#4  0x00007fbf7d031cd5 in QThreadPrivate::start (arg=0x1a553f0) at thread/qthread_unix.cpp:188
#5  0x00007fbf7cdc286a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00007fbf7990725d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fbf4cf60910 (LWP 6278)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:220
#1  0x00007fbf7d032ce2 in QWaitConditionPrivate::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:85
#2  QWaitCondition::wait (time=<value optimized out>, this=<value optimized out>) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fbf7d028e22 in QThreadPoolThread::run (this=<value optimized out>) at concurrent/qthreadpool.cpp:140
#4  0x00007fbf7d031cd5 in QThreadPrivate::start (arg=0x1cd2a80) at thread/qthread_unix.cpp:188
#5  0x00007fbf7cdc286a in start_thread (arg=<value optimized out>) at pthread_create.c:297
#6  0x00007fbf7990725d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fbf7d5d5820 (LWP 6001)):
[KCrash Handler]
#5  0x00007fbf7d12dce4 in QMetaObject::activate (sender=0x21ab9f0, m=<value optimized out>, local_signal_index=3, argv=0x7fff1e5198b0) at kernel/qobject.cpp:3183
#6  0x00007fbf7ca2e322 in KJob::result (this=0x7fbf7cdad5a0, _t1=0x21ab9f0) at /usr/src/debug/kdelibs-4.3.0/x86_64-redhat-linux-gnu/kdecore/kjob.moc:188
#7  0x00007fbf7ca2e69f in KJob::emitResult (this=0x21ab9f0) at /usr/src/debug/kdelibs-4.3.0/kdecore/jobs/kjob.cpp:304
#8  0x00007fbf4ebda4e2 in TweetJob::result (this=0x21ab9f0, job=0x21ab580) at /usr/src/debug/kdeplasma-addons-4.3.0/dataengines/microblog/timelinesource.cpp:50
#9  0x00007fbf4ebda540 in TweetJob::qt_metacall (this=0x21ab9f0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff1e519a40)
    at /usr/src/debug/kdeplasma-addons-4.3.0/x86_64-redhat-linux-gnu/dataengines/microblog/timelinesource.moc:68
#10 0x00007fbf7d12cfdc in QMetaObject::activate (sender=0x21ab580, from_signal_index=<value optimized out>, to_signal_index=<value optimized out>, argv=0x7) at kernel/qobject.cpp:3113
#11 0x00007fbf7ca2e322 in KJob::result (this=0x7fbf7cdad5a0, _t1=0x21ab580) at /usr/src/debug/kdelibs-4.3.0/x86_64-redhat-linux-gnu/kdecore/kjob.moc:188
#12 0x00007fbf7ca2e69f in KJob::emitResult (this=0x21ab580) at /usr/src/debug/kdelibs-4.3.0/kdecore/jobs/kjob.cpp:304
#13 0x00007fbf7bfeacd3 in KIO::SimpleJob::slotFinished (this=0x21ab580) at /usr/src/debug/kdelibs-4.3.0/kio/kio/job.cpp:477
#14 0x00007fbf7bfeb183 in KIO::TransferJob::slotFinished (this=0x21ab580) at /usr/src/debug/kdelibs-4.3.0/kio/kio/job.cpp:948
#15 0x00007fbf7bfe9aa1 in KIO::TransferJob::qt_metacall (this=0x21ab580, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff1e519e60)
    at /usr/src/debug/kdelibs-4.3.0/x86_64-redhat-linux-gnu/kio/jobclasses.moc:343
#16 0x00007fbf7d12cfdc in QMetaObject::activate (sender=0x118ceb0, from_signal_index=<value optimized out>, to_signal_index=<value optimized out>, argv=0x7) at kernel/qobject.cpp:3113
#17 0x00007fbf7c0ac261 in KIO::SlaveInterface::dispatch (this=0x118ceb0, _cmd=104, rawdata=@0x7fff1e51a0b0) at /usr/src/debug/kdelibs-4.3.0/kio/kio/slaveinterface.cpp:175
#18 0x00007fbf7c0a8c13 in KIO::SlaveInterface::dispatch (this=0x118ceb0) at /usr/src/debug/kdelibs-4.3.0/kio/kio/slaveinterface.cpp:91
#19 0x00007fbf7c09bcd2 in KIO::Slave::gotInput (this=0x118ceb0) at /usr/src/debug/kdelibs-4.3.0/kio/kio/slave.cpp:322
#20 0x00007fbf7c09dcdc in KIO::Slave::qt_metacall (this=0x118ceb0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff1e51a220)
    at /usr/src/debug/kdelibs-4.3.0/x86_64-redhat-linux-gnu/kio/slave.moc:76
#21 0x00007fbf7d12cfdc in QMetaObject::activate (sender=0x1bb0f70, from_signal_index=<value optimized out>, to_signal_index=<value optimized out>, argv=0x7) at kernel/qobject.cpp:3113
#22 0x00007fbf7bfb88a7 in KIO::ConnectionPrivate::dequeue (this=0x1aba430) at /usr/src/debug/kdelibs-4.3.0/kio/kio/connection.cpp:82
#23 0x00007fbf7bfb89cd in KIO::Connection::qt_metacall (this=0x1bb0f70, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x1ed5fd0)
    at /usr/src/debug/kdelibs-4.3.0/x86_64-redhat-linux-gnu/kio/connection.moc:73
#24 0x00007fbf7d127309 in QObject::event (this=0x1bb0f70, e=0x13dcc90) at kernel/qobject.cpp:1111
#25 0x00007fbf7a4cde2c in QApplicationPrivate::notify_helper (this=0xa6b7f0, receiver=0x1bb0f70, e=0x13dcc90) at kernel/qapplication.cpp:4056
#26 0x00007fbf7a4d4e5e in QApplication::notify (this=0xa62810, receiver=0x1bb0f70, e=0x13dcc90) at kernel/qapplication.cpp:4021
#27 0x00007fbf7b5ad546 in KApplication::notify (this=0xa62810, receiver=0x1bb0f70, event=0x13dcc90) at /usr/src/debug/kdelibs-4.3.0/kdeui/kernel/kapplication.cpp:302
#28 0x00007fbf7d117cbc in QCoreApplication::notifyInternal (this=0xa62810, receiver=0x1bb0f70, event=0x13dcc90) at kernel/qcoreapplication.cpp:610
#29 0x00007fbf7d1188c8 in QCoreApplication::sendEvent (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.h:213
#30 QCoreApplicationPrivate::sendPostedEvents (event=<value optimized out>, receiver=<value optimized out>) at kernel/qcoreapplication.cpp:1247
#31 0x00007fbf7d140743 in QCoreApplication::sendPostedEvents () at kernel/qcoreapplication.h:218
#32 postEventSourceDispatch () at kernel/qeventdispatcher_glib.cpp:210
#33 0x00007fbf78f61abe in g_main_dispatch (context=<value optimized out>) at gmain.c:1824
#34 IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2377
#35 0x00007fbf78f65278 in g_main_context_iterate (context=0xa6dd20, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2455
#36 0x00007fbf78f653a0 in IA__g_main_context_iteration (context=0xa6dd20, may_block=1) at gmain.c:2518
#37 0x00007fbf7d1403b6 in QEventDispatcherGlib::processEvents (this=0x9d1e50, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:327
#38 0x00007fbf7a560b8e in QGuiEventDispatcherGlib::processEvents (this=0x7fbf7cdad5a0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#39 0x00007fbf7d1165f2 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 36}) at kernel/qeventloop.cpp:149
#40 0x00007fbf7d1169c4 in QEventLoop::exec (this=0x7fff1e51ab20, flags={i = 0}) at kernel/qeventloop.cpp:201
#41 0x00007fbf7d118b79 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#42 0x00007fbf6abb6dbf in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/kdebase-workspace-4.3.0/plasma/shells/desktop/main.cpp:50
#43 0x00000000004068b3 in launch (argc=1, _name=<value optimized out>, args=<value optimized out>, cwd=<value optimized out>, envc=0, envs=<value optimized out>, reset_env=false, tty=0x0, 
    avoid_loops=false, startup_id_str=0x409da5 "0") at /usr/src/debug/kdelibs-4.3.0/kinit/kinit.cpp:676
#44 0x00000000004075a0 in handle_launcher_request (sock=7, who=<value optimized out>) at /usr/src/debug/kdelibs-4.3.0/kinit/kinit.cpp:1168
#45 0x0000000000407a51 in handle_requests (waitForPid=0) at /usr/src/debug/kdelibs-4.3.0/kinit/kinit.cpp:1361
#46 0x00000000004086b2 in main (argc=2, argv=<value optimized out>, envp=<value optimized out>) at /usr/src/debug/kdelibs-4.3.0/kinit/kinit.cpp:1788
Comment 6 Rex Dieter 2009-08-03 17:05:29 UTC
Unfortunately, to my unlearned padawan backtrace-reading eyes, this new one doesn't look much different.
Comment 7 Aaron J. Seigo 2009-08-03 19:35:26 UTC
@Juha: "Thou I'm not that sure do I support fixing this,
since pressing enter in microblogger's write-area, it is the easiest way to
crash whole plasma after it's notification thingy"

not fixing a bug because it exposes another bug doesn't make sense, doubly so in this case since one of the two reasons for this widget is to post updates (the other reason for it is to read other people's updates).

@Rex: yes, the backtraces are the same. it still doesn't make sense to me as it's a signal calling into an object (signal/slot connections are broken when an object is deleted, so we know that at this point TweetJob is a valid object) and then never leaves that object and dies in QObject.

aaah.. i think i've found it:

KJob emits finished, then it emits result. KJob::finished is relayed by Plasma::Service::finished. microblogger then deletes the services and requests new ones (that seems a bit unnecessary, but i don't want to disturb things more than necessary here, i'll try and clean this up better for 4.4). when the services are deleted, the jobs associated with them are deleted (fair enough). but in this case, we're in the middle of executing code in the job (in between it emitting finished and result), ergo the crash.

fix coming up.
Comment 8 Aaron J. Seigo 2009-08-03 19:43:20 UTC
SVN commit 1006404 by aseigo:

backport: this method gets called from a signal from the job which is part of the service, so deleteLater the service otherwise we delete the job in the middle of one of its methods!
BUG:202364


 M  +6 -2      microblog.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1006404