Bug 225813 - Crash when closing knode reply windows [ KNArticleManager::deleteArticles - KNArticleFactory::slotComposerDone KNArticleFactory::qt_metacall ]
Summary: Crash when closing knode reply windows [ KNArticleManager::deleteArticles - K...
Status: RESOLVED FIXED
Alias: None
Product: knode
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-02-07 11:19 UTC by PC LX
Modified: 2010-04-23 14:28 UTC (History)
0 users

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 PC LX 2010-02-07 11:19:35 UTC
Application that crashed: kontact
Version of the application: 4.3.5
KDE Version: 4.3.5 (KDE 4.3.5)
Qt Version: 4.5.3
Operating System: Linux 2.6.31.12-desktop-1mnb x86_64
Distribution: "Mandriva Linux 2010.0"

What I was doing when the application crashed:
The crash coincided with me closing a reply windows to a post. Don't know if the two events are related. I'm unable to reproduce this bug.

 -- Backtrace:
Application: Kontact (kontact), signal: Segmentation fault
[KCrash Handler]
#5  0x0000000000000081 in ?? ()
#6  0x00007f466dffd35f in KNArticleManager::deleteArticles (this=<value optimized out>, l=@0x7fffc8f46320, ask=<value optimized out>) at /usr/src/debug/kdepim-4.3.5/knode/knarticlemanager.cpp:601
#7  0x00007f466e01e512 in KNArticleFactory::slotComposerDone (this=0x1c2c910, com=0x2358840) at /usr/src/debug/kdepim-4.3.5/knode/knarticlefactory.cpp:1052
#8  0x00007f466e01e650 in KNArticleFactory::qt_metacall (this=0x1c2c910, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffc8f46470)
    at /usr/src/debug/kdepim-4.3.5/build/knode/knarticlefactory.moc:71
#9  0x00007f468ac7088c in QMetaObject::activate (sender=0x2358840, from_signal_index=<value optimized out>, to_signal_index=<value optimized out>, argv=0x2) at kernel/qobject.cpp:3112
#10 0x00007f466e0077bf in KNComposer::composerDone (this=0x4231530, _t1=0x2358840) at /usr/src/debug/kdepim-4.3.5/build/knode/kncomposer.moc:201
#11 0x00007f466e0105d1 in KNComposer::closeEvent (this=0x2358840, e=0x7fffc8f46be0) at /usr/src/debug/kdepim-4.3.5/knode/kncomposer.cpp:964
#12 0x00007f468a1584f8 in QWidget::event (this=0x2358840, event=0x7fffc8f46be0) at kernel/qwidget.cpp:7704
#13 0x00007f468a4cd59b in QMainWindow::event (this=0x2358840, event=0x7fffc8f46be0) at widgets/qmainwindow.cpp:1399
#14 0x00007f468b6f38e3 in KXmlGuiWindow::event (this=0x4231530, ev=0x1) at /usr/src/debug/kdelibs-4.3.5/kdeui/xmlgui/kxmlguiwindow.cpp:131
#15 0x00007f468a10a12c in QApplicationPrivate::notify_helper (this=0x7bcee0, receiver=0x2358840, e=0x7fffc8f46be0) at kernel/qapplication.cpp:4065
#16 0x00007f468a1113fe in QApplication::notify (this=0x7fffc8f488b0, receiver=0x2358840, e=0x7fffc8f46be0) at kernel/qapplication.cpp:4030
#17 0x00007f468b5e83f6 in KApplication::notify (this=0x7fffc8f488b0, receiver=0x2358840, event=0x7fffc8f46be0) at /usr/src/debug/kdelibs-4.3.5/kdeui/kernel/kapplication.cpp:302
#18 0x00007f468ac5b6ac in QCoreApplication::notifyInternal (this=0x7fffc8f488b0, receiver=0x2358840, event=0x7fffc8f46be0) at kernel/qcoreapplication.cpp:610
#19 0x00007f468a15d901 in QWidgetPrivate::close_helper (this=0x2387720, mode=QWidgetPrivate::CloseWithSpontaneousEvent) at ../../src/corelib/kernel/qcoreapplication.h:216
#20 0x00007f468a164d96 in QApplication::x11ClientMessage (this=<value optimized out>, w=0x2358840, event=0x1, passive_only=2) at kernel/qapplication_x11.cpp:5293
#21 0x00007f468a175714 in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fffc8f484c0) at kernel/qapplication_x11.cpp:3684
#22 0x00007f468a19de9c in x11EventSourceDispatch (s=<value optimized out>, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#23 0x00007f468361a4ce in IA__g_main_context_dispatch (context=0x7bfe20) at gmain.c:1960
#24 0x00007f468361de98 in g_main_context_iterate (context=0x7bfe20, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2591
#25 0x00007f468361dfc0 in IA__g_main_context_iteration (context=0x7bfe20, may_block=1) at gmain.c:2654
#26 0x00007f468ac83c73 in QEventDispatcherGlib::processEvents (this=0x781690, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:406
#27 0x00007f468a19d64e in QGuiEventDispatcherGlib::processEvents (this=0x4231530, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#28 0x00007f468ac59fe2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#29 0x00007f468ac5a3b4 in QEventLoop::exec (this=0x7fffc8f487f0, flags=) at kernel/qeventloop.cpp:201
#30 0x00007f468ac5c569 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#31 0x0000000000403be7 in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/kdepim-4.3.5/kontact/src/main.cpp:218

Reported using DrKonqi
Comment 1 Olivier Trichet 2010-04-23 14:28:08 UTC
SVN commit 1117909 by otrichet:

Use boost::shared_ptr instead of plain pointer to handler KNArticle that are use all over the place.

Side effect: use a QList in KNArticleVector instead of a old fashion array

This fix crash cause by double free and freed-pointer access:
BUG: 172266
BUG: 225813
BUG: 141573
This should also fixed crash that happens while accessing article (that
were certainly already freed):
BUG: 134904
BUG: 216919
BUG: 230536
BUG: 132990

 M  +18 -23    articlewidget.cpp  
 M  +10 -12    articlewidget.h  
 M  +6 -6      headerview.cpp  
 M  +9 -5      knarticle.cpp  
 M  +18 -7     knarticle.h  
 M  +43 -168   knarticlecollection.cpp  
 M  +25 -23    knarticlecollection.h  
 M  +31 -39    knarticlefactory.cpp  
 M  +9 -11     knarticlefactory.h  
 M  +8 -8      knarticlefilter.cpp  
 M  +2 -2      knarticlefilter.h  
 M  +43 -42    knarticlemanager.cpp  
 M  +8 -5      knarticlemanager.h  
 M  +10 -11    knarticlewindow.cpp  
 M  +5 -6      knarticlewindow.h  
 M  +2 -2      kncleanup.cpp  
 M  +6 -6      kncomposer.cpp  
 M  +4 -3      kncomposer.h  
 M  +12 -34    knfolder.cpp  
 M  +14 -7     knfolder.h  
 M  +12 -13    knfoldermanager.cpp  
 M  +26 -42    kngroup.cpp  
 M  +21 -10    kngroup.h  
 M  +11 -14    kngroupbrowser.cpp  
 M  +3 -9      kngroupbrowser.h  
 M  +25 -29    kngroupmanager.cpp  
 M  +6 -1      kngroupmanager.h  
 M  +6 -4      kngroupselectdialog.cpp  
 M  +19 -16    knhdrviewitem.cpp  
 M  +6 -6      knhdrviewitem.h  
 M  +3 -3      knjobdata.cpp  
 M  +11 -4     knjobdata.h  
 M  +15 -13    knmainwidget.cpp  
 M  +5 -8      knmainwidget.h  
 M  +7 -6      knmemorymanager.cpp  
 M  +7 -7      knmemorymanager.h  
 M  +8 -9      knscoring.cpp  
 M  +4 -4      knscoring.h  
 M  +3 -5      knstatusfilter.cpp  
 M  +7 -6      knstatusfilter.h  
 M  +2 -2      mailsendjob.cpp  
 M  +1 -1      mailsendjob.h  
 M  +16 -17    nntpjobs.cpp  
 M  +5 -5      nntpjobs.h  


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