Bug 280568 - Kontact/KMail crashes when closing the Sieve dialog
Summary: Kontact/KMail crashes when closing the Sieve dialog
Status: RESOLVED FIXED
Alias: None
Product: kmail2
Classification: Applications
Component: sieve (show other bugs)
Version: 4.7
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
: 283012 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-08-22 12:55 UTC by Elias Probst
Modified: 2011-09-29 17:16 UTC (History)
3 users (show)

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


Attachments
Screenshot of sieve script listing (18.88 KB, image/png)
2011-08-22 17:27 UTC, Elias Probst
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Elias Probst 2011-08-22 12:55:01 UTC
Application: kontact (4.7.0 )
KDE Platform Version: 4.7.00 (4.7.0) (Compiled from sources)
Qt Version: 4.7.2
Operating System: Linux 2.6.39-gentoo-r3 x86_64
Distribution: "Gentoo Base System release 2.0.3"

-- Information about the crash:
- What I was doing when the application crashed:
This bug can be easily reproduced here by doing this:
→ Start Kontact
→ Go to the KMail component
→ Open the Sieve dialog (Settings → Manage Sieve Scripts)
→ Close the Sieve dialog
→ Kontact/KMail crashes

This does also happen when running KMail standalone.

The crash can be reproduced every time.

-- Backtrace:
Application: Kontact (kontact), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fbf52c3e760 (LWP 22979))]

Thread 3 (Thread 0x7fbf3b0bd700 (LWP 22980)):
#0  pthread_cond_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fbf4f74e312 in WTF::TCMalloc_PageHeap::scavengerThread() () from /usr/lib64/qt4/libQtWebKit.so.4
#2  0x00007fbf4f74e40d in WTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /usr/lib64/qt4/libQtWebKit.so.4
#3  0x00007fbf4b206a6d in start_thread (arg=<value optimized out>) at pthread_create.c:301
#4  0x00007fbf50243d7d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7fbf24cd6700 (LWP 17841)):
#0  pthread_cond_timedwait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
#1  0x00007fbf5149d971 in wait (this=<value optimized out>, mutex=0x2b18c90, time=30000) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2b18c90, time=30000) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fbf514929e5 in QThreadPoolThread::run (this=0x2a4bc30) at concurrent/qthreadpool.cpp:140
#4  0x00007fbf5149ceed in QThreadPrivate::start (arg=0x2a4bc30) at thread/qthread_unix.cpp:320
#5  0x00007fbf4b206a6d in start_thread (arg=<value optimized out>) at pthread_create.c:301
#6  0x00007fbf50243d7d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7fbf52c3e760 (LWP 22979)):
[KCrash Handler]
#6  0x00007fbf35945bf8 in KSieveUi::ManageSieveScriptsDialog::killAllJobs (this=<value optimized out>) at /var/tmp/portage/kde-base/kmail-4.7.0/work/kmail-4.7.0/libksieve/ksieveui/managesievescriptsdialog.cpp:76
#7  0x00007fbf35945c36 in KSieveUi::ManageSieveScriptsDialog::clear (this=0x1) at /var/tmp/portage/kde-base/kmail-4.7.0/work/kmail-4.7.0/libksieve/ksieveui/managesievescriptsdialog.cpp:279
#8  0x00007fbf35946281 in KSieveUi::ManageSieveScriptsDialog::~ManageSieveScriptsDialog (this=0x1, __in_chrg=<value optimized out>) at /var/tmp/portage/kde-base/kmail-4.7.0/work/kmail-4.7.0/libksieve/ksieveui/managesievescriptsdialog.cpp:69
#9  0x00007fbf5158b295 in QObject::event (this=0x49d8c30, e=0x0) at kernel/qobject.cpp:1200
#10 0x00007fbf509ef0b0 in QWidget::event (this=0x49d8c30, event=0x2fac8c0) at kernel/qwidget.cpp:8718
#11 0x00007fbf509a2b85 in QApplicationPrivate::notify_helper (this=0x635350, receiver=0x49d8c30, e=0x2fac8c0) at kernel/qapplication.cpp:4462
#12 0x00007fbf509a77a2 in QApplication::notify (this=0x7fffe0858bb0, receiver=0x49d8c30, e=0x2fac8c0) at kernel/qapplication.cpp:4341
#13 0x00007fbf51ffacd2 in KApplication::notify (this=0x7fffe0858bb0, receiver=0x49d8c30, event=0x2fac8c0) at /var/tmp/portage/kde-base/kdelibs-4.7.0-r1/work/kdelibs-4.7.0/kdeui/kernel/kapplication.cpp:311
#14 0x00007fbf5157aeae in QCoreApplication::notifyInternal (this=0x7fffe0858bb0, receiver=0x49d8c30, event=0x2fac8c0) at kernel/qcoreapplication.cpp:731
#15 0x00007fbf5157da74 in sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x60f090) at kernel/qcoreapplication.h:215
#16 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x60f090) at kernel/qcoreapplication.cpp:1372
#17 0x00007fbf515a334e in sendPostedEvents (s=0x6446c0) at kernel/qcoreapplication.h:220
#18 postEventSourceDispatch (s=0x6446c0) at kernel/qeventdispatcher_glib.cpp:277
#19 0x00007fbf4a27e4cc in g_main_dispatch (context=0x6438e0) at gmain.c:2441
#20 g_main_context_dispatch (context=0x6438e0) at gmain.c:3014
#21 0x00007fbf4a2821a1 in g_main_context_iterate (context=0x6438e0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:3092
#22 0x00007fbf4a28235e in g_main_context_iteration (context=0x6438e0, may_block=1) at gmain.c:3155
#23 0x00007fbf515a2f52 in QEventDispatcherGlib::processEvents (this=0x60e890, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#24 0x00007fbf50a458d2 in QGuiEventDispatcherGlib::processEvents (this=0x1, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#25 0x00007fbf51579ee2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#26 0x00007fbf5157a241 in QEventLoop::exec (this=0x7fffe0858af0, flags=) at kernel/qeventloop.cpp:201
#27 0x00007fbf5157dcb7 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#28 0x0000000000403e83 in main (argc=<value optimized out>, argv=<value optimized out>) at /var/tmp/portage/kde-base/kontact-4.7.0/work/kontact-4.7.0/kontact/src/main.cpp:218

Reported using DrKonqi
Comment 1 Elias Probst 2011-08-22 13:04:54 UTC
It seems this crash does not happen, when editing a script and using "OK" afterwards, which means the Sieve dialog updates the script on the server.

This means the crash does only occur, when no upload to the server happened.
Comment 2 Laurent Montel 2011-08-22 16:50:37 UTC
I can't reproduce this crash.
Comment 3 Laurent Montel 2011-08-22 16:51:49 UTC
Do you have several script ?
Comment 4 Elias Probst 2011-08-22 17:27:15 UTC
Created attachment 63057 [details]
Screenshot of sieve script listing

(In reply to comment #3)
> Do you have several script ?
One server with 1 script
One server with no scripts
See also attached screenshot.
Comment 5 Laurent Montel 2011-08-22 22:13:54 UTC
Ok for the moment I can't reproduce it
Will continue
Comment 6 Damien Gombault 2011-09-13 13:32:14 UTC
I also have this crash with the same stacktrace on Arch Linux 64 bits and KMail 4.7.1.

I open the Sieve config dialog, close it then I get the crash.
I have one IMAP account with no Sieve script (yet).
Comment 7 Christophe Marin 2011-09-29 15:39:54 UTC
*** Bug 283012 has been marked as a duplicate of this bug. ***
Comment 8 Murz 2011-09-29 16:30:18 UTC
As I describe in Bug 283012, it crashes only if can't connect to Sieve server, if connection is successful, it isn't crash. Hope this helps solve issue.
Comment 9 Laurent Montel 2011-09-29 17:15:28 UTC
Git commit 53fd6b2eeba7d2aa8144be984fd7b82b5f1f4671 by Montel Laurent.
Committed on 29/09/2011 at 19:14.
Pushed by mlaurent into branch 'master'.

Fix Bug 280568 - Kontact/KMail crashes when closing the Sieve dialog

When we call kill() we send a signal result() and result remove job in mJobs
=> list of mJobs is not good after that.
So when we close dialog we disconnect signal before to call kill and mJobs is clear at the end of function

FIXED-IN: 4.7.2
BUG: 280568

M  +11   -6    libksieve/ksieveui/managesievescriptsdialog.cpp
M  +2    -2    libksieve/ksieveui/managesievescriptsdialog.h

http://commits.kde.org/kdepim/53fd6b2eeba7d2aa8144be984fd7b82b5f1f4671
Comment 10 Laurent Montel 2011-09-29 17:16:22 UTC
Git commit caecde24b1a011b11a4b311c18e3cddc809adbac by Montel Laurent.
Committed on 29/09/2011 at 19:14.
Pushed by mlaurent into branch 'KDE/4.7'.

Fix Bug 280568 - Kontact/KMail crashes when closing the Sieve dialog

When we call kill() we send a signal result() and result remove job in mJobs
=> list of mJobs is not good after that.
So when we close dialog we disconnect signal before to call kill and mJobs is clear at the end of function

FIXED-IN: 4.7.2
BUG: 280568
(cherry picked from commit 53fd6b2eeba7d2aa8144be984fd7b82b5f1f4671)

M  +11   -6    libksieve/ksieveui/managesievescriptsdialog.cpp
M  +2    -2    libksieve/ksieveui/managesievescriptsdialog.h

http://commits.kde.org/kdepim/caecde24b1a011b11a4b311c18e3cddc809adbac