Bug 188231 - Kate crashes when a transfer job is stopped from the systray
Summary: Kate crashes when a transfer job is stopped from the systray
Status: RESOLVED FIXED
Alias: None
Product: kate
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: KWrite Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-03-27 09:17 UTC by Diederik van der Boor
Modified: 2009-04-08 01:25 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Diederik van der Boor 2009-03-27 09:17:48 UTC
Version:           onbekend (using 4.2.1 (KDE 4.2.1) "release 104", KDE:KDE4:Factory:Desktop / openSUSE_11.0)
Compiler:          gcc
OS:                Linux (i686) release 2.6.25.20-0.1-default

It's possible to make Kate crash when a job is stopped from the systray.

Example:

- Open a file from a website in Kate.
- Close Kate during the progress
- the job still continues, now stop it.

This produces the following crash:

Programma: Kate (kate), signaal SIGSEGV
[Current thread is 0 (LWP 32406)]

Thread 2 (Thread 0xb3dbfb90 (LWP 32408)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb6ae6f42 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb6b4583c in QWaitCondition::wait (this=0x83df100, mutex=0x83df0fc, time=30000) at thread/qwaitcondition_unix.cpp:80
#3  0xb6b3a95e in QThreadPoolThread::run (this=0x83c5d50) at concurrent/qthreadpool.cpp:135
#4  0xb6b4484e in QThreadPrivate::start (arg=0x83c5d50) at thread/qthread_unix.cpp:185
#5  0xb6ae3175 in start_thread () from /lib/libpthread.so.0
#6  0xb6943dae in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb5cc56d0 (LWP 32406)):
[KCrash Handler]
#6  0xb6d193e3 in QListData::shared_null () from /usr/lib/libQtCore.so.4
#7  0xb6e4f262 in KJob::kill (this=) at /usr/src/debug/kdelibs-4.2.1/kdecore/jobs/kjob.cpp:106
Backtrace stopped: previous frame inner to this frame (corrupt stack?)


Example 2:
- Again open a file from a website in Kate.
- Stop the job first.
- Now close kate, or exit the document.

This produces the following crash:

Programma: Kate (kate), signaal SIGSEGV
[Current thread is 0 (LWP 32475)]

Thread 2 (Thread 0xb3cc3b90 (LWP 32478)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb69eaf42 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb6a4983c in QWaitCondition::wait (this=0x83b8e58, mutex=0x83b8e54, time=30000) at thread/qwaitcondition_unix.cpp:80
#3  0xb6a3e95e in QThreadPoolThread::run (this=0x83e09a0) at concurrent/qthreadpool.cpp:135
#4  0xb6a4884e in QThreadPrivate::start (arg=0x83e09a0) at thread/qthread_unix.cpp:185
#5  0xb69e7175 in start_thread () from /lib/libpthread.so.0
#6  0xb6847dae in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb5bc96d0 (LWP 32475)):
[KCrash Handler]
#6  0x00000000 in ?? ()
#7  0xb7ec0a74 in KParts::ReadOnlyPart::abortLoad (this=0x818a5d0) at /usr/src/debug/kdelibs-4.2.1/kparts/part.cpp:602
#8  0xb7ec2772 in KParts::ReadWritePart::closeUrl (this=0x818a5d0) at /usr/src/debug/kdelibs-4.2.1/kparts/part.cpp:800
#9  0xb4324e92 in KateDocument::closeUrl (this=0x818a5d0) at /usr/src/debug/kdelibs-4.2.1/kate/document/katedocument.cpp:3796
#10 0xb7f123cb in ?? () from /usr/lib/libkateinterfaces.so.4
#11 0xb7f24418 in ?? () from /usr/lib/libkateinterfaces.so.4
#12 0xb7f276f5 in ?? () from /usr/lib/libkateinterfaces.so.4
#13 0xb7f28b6b in ?? () from /usr/lib/libkateinterfaces.so.4
#14 0xb6b4d740 in QMetaObject::activate (sender=0x81b4170, from_signal_index=5, to_signal_index=6, argv=0xbfd9704c) at kernel/qobject.cpp:3031
#15 0xb6b4db40 in QMetaObject::activate (sender=0x81b4170, m=0xb7764c78, from_local_signal_index=1, to_local_signal_index=2, argv=0xbfd9704c) at kernel/qobject.cpp:3121
#16 0xb6fb4591 in QAction::triggered (this=0x81b4170, _t1=false) at .moc/release-shared/moc_qaction.cpp:216
#17 0xb6fb4eff in QAction::activate (this=0x81b4170, event=QAction::Trigger) at kernel/qaction.cpp:1125
#18 0xb73da812 in QToolButton::nextCheckState (this=0x0) at ../../include/QtGui/../../src/gui/kernel/qaction.h:195
#19 0xb72fdbf3 in QAbstractButtonPrivate::click (this=0x822c9f8) at widgets/qabstractbutton.cpp:520
#20 0xb72fdec6 in QAbstractButton::mouseReleaseEvent (this=0x822c948, e=0xbfd97658) at widgets/qabstractbutton.cpp:1110
#21 0xb73dad0c in QToolButton::mouseReleaseEvent (this=0x822c948, e=0xbfd97658) at widgets/qtoolbutton.cpp:671
#22 0xb7012a62 in QWidget::event (this=0x822c948, event=0xbfd97658) at kernel/qwidget.cpp:7163
#23 0xb72fbf6e in QAbstractButton::event (this=0x822c948, e=0xbfd97658) at widgets/qabstractbutton.cpp:1072
#24 0xb73da7d4 in QToolButton::event (this=0x822c948, e=0xbfd97658) at widgets/qtoolbutton.cpp:1103
#25 0xb6fba82c in QApplicationPrivate::notify_helper (this=0x805afc8, receiver=0x822c948, e=0xbfd97658) at kernel/qapplication.cpp:3803
#26 0xb6fc3081 in QApplication::notify (this=0xbfd98018, receiver=0x822c948, e=0xbfd97658) at kernel/qapplication.cpp:3528
#27 0xb7ac05fd in KApplication::notify (this=0xbfd98018, receiver=0x822c948, event=0xbfd97658) at /usr/src/debug/kdelibs-4.2.1/kdeui/kernel/kapplication.cpp:307
#28 0xb6b38a71 in QCoreApplication::notifyInternal (this=0xbfd98018, receiver=0x822c948, event=0xbfd97658) at kernel/qcoreapplication.cpp:587
#29 0xb6fc230e in QApplicationPrivate::sendMouseEvent (receiver=0x822c948, event=0xbfd97658, alienWidget=0x822c948, nativeWidget=0x819bad0, buttonDown=0xb777bc90, lastMouseReceiver=@0xb777bc94)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:212
#30 0xb702c776 in QETWidget::translateMouseEvent (this=0x819bad0, event=0xbfd97c2c) at kernel/qapplication_x11.cpp:4042
#31 0xb702bb1d in QApplication::x11ProcessEvent (this=0xbfd98018, event=0xbfd97c2c) at kernel/qapplication_x11.cpp:3038
#32 0xb70541fc in x11EventSourceDispatch (s=0x805deb0, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:142
#33 0xb5eee2d9 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#34 0xb5ef185b in ?? () from /usr/lib/libglib-2.0.so.0
#35 0xb5ef19d8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#36 0xb6b63208 in QEventDispatcherGlib::processEvents (this=0x805b080, flags={i = -1076265496}) at kernel/qeventdispatcher_glib.cpp:319
#37 0xb70538c5 in QGuiEventDispatcherGlib::processEvents (this=0x805b080, flags={i = -1076265448}) at kernel/qguieventdispatcher_glib.cpp:198
#38 0xb6b3714a in QEventLoop::processEvents (this=0xbfd97e90, flags={i = -1076265384}) at kernel/qeventloop.cpp:143
#39 0xb6b3730a in QEventLoop::exec (this=0xbfd97e90, flags={i = -1076265320}) at kernel/qeventloop.cpp:194
#40 0xb6b399a5 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:845
#41 0xb6fba6a7 in QApplication::exec () at kernel/qapplication.cpp:3331
#42 0xb7f5e715 in kdemain () from /usr/lib/libkdeinit4_kate.so
#43 0x080486a2 in _start ()
Comment 1 Raphael Kubo da Costa 2009-04-07 23:06:24 UTC
SVN commit 950830 by rkcosta:

Fix the call to KJob::kill when the Cancel button is pressed - KJob::EmitResult must be passed so that ReadOnlyPart can handle the termination correctly.

BUG: 186722
BUG: 186980
BUG: 187538
CCBUG: 188231


 M  +14 -2     kuiserverjobtracker.cpp  
 M  +2 -0      kuiserverjobtracker.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=950830
Comment 2 Raphael Kubo da Costa 2009-04-08 01:25:30 UTC
I couldn't reproduce the first test case either, so I'm closing it as FIXED.