Bug 71102

Summary: knode crash: select a reference and close window before article downloads
Product: [Unmaintained] knode Reporter: Amit Shah <amitshah>
Component: generalAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: larkang, nive
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Amit Shah 2003-12-23 11:06:10 UTC
Version:           1.5.94 (using KDE 3.1.94 (3.2 Beta 2), compiled sources)
Compiler:          gcc version 3.3.2 (Debian)
OS:          Linux (i686) release 2.6.0

I run knode from kontact. On this crash, the whole of kontact crashed. I didn't even get a trace log (I've compiled with --enable-debug=full). I don't know why it didn't give the backtrace.

However, it's easy to reproduce:
1. Click on any number in the 'references' field in the preview window.
2. A new window is opened, in which the article is displayed. Before this article is downloaded, close this new window.

Crash.
Comment 1 Richard Lärkäng 2004-01-26 16:55:00 UTC
I reproduced this one a while ago, but I forgot to send the backtrace, so here it is:

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 31843)]
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 31843)]
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 31843)]
[New Thread 32769 (LWP 1043)]
[New Thread 16386 (LWP 1044)]
[New Thread 32771 (LWP 1045)]
0x414e89cb in waitpid () from /lib/libpthread.so.0
#0  0x414e89cb in waitpid () from /lib/libpthread.so.0
#1  0x40b662cc in __JCR_LIST__ () from /usr/kde/cvs/lib/libkdecore.so.4
#2  0x00000001 in ?? ()
#3  0x40aa173c in KCrash::defaultCrashHandler(int) (sig=11)
    at ../cvs/kdelibs/kdecore/kcrash.cpp:246
#4  0x414e7693 in __pthread_sighandler () from /lib/libpthread.so.0
#5  <signal handler called>
#6  0x0876c298 in ?? ()
#7  0x411b29f4 in QCString::resize(unsigned) (this=0x876c29c, len=0)
    at tools/qcstring.cpp:832
#8  0x42e22263 in KMime::Content::setContent(QStrList*) (this=0x876c298,
    l=0x432eb854) at ../cvs/kdepim/libkdenetwork/kmime_content.cpp:57
#9  0x43033727 in KNNntpClient::doFetchArticle() (this=0x874e700)
    at ../cvs/kdepim/knode/knnntpclient.cpp:474
#10 0x43031d2f in KNNntpClient::processJob() (this=0x874e700)
    at ../cvs/kdepim/knode/knnntpclient.cpp:54
#11 0x4302f3be in KNProtocolClient::waitForWork() (this=0x874e700)
    at ../cvs/kdepim/knode/knprotocolclient.cpp:152
#12 0x4302efc3 in KNProtocolClient::run() (this=0x874e700)
    at ../cvs/kdepim/knode/knprotocolclient.cpp:60
#13 0x40e8ee3c in QThreadInstance::start(void*) (_arg=0x874e77c)
    at kernel/qthread_unix.cpp:120
#14 0x414e1fc8 in pthread_start_thread () from /lib/libpthread.so.0
#15 0x41634dea in clone () from /lib/libc.so.6
Comment 2 Frank Osterfeld 2005-10-01 15:43:37 UTC
I can still reproduce this using SVN 3.5 branch, 466075.
Click on a reference, and press Ctrl+W ASAP => Crash:

Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
[Thread debugging using libthread_db enabled]
[New Thread -1243565952 (LWP 5969)]
[New Thread -1247892560 (LWP 5973)]
[KCrash handler]
#4  KMime::Content::storageSize (this=0x83a1530) at qgarray.h:79
#5  0xb7f46984 in KNMemoryManager::ArticleItem::sync (this=0x85c5650)
    at knmemorymanager.cpp:209
#6  0xb7f45afb in KNMemoryManager::updateCacheEntry (this=0x82d4950, 
    a=0xbfffed10) at knmemorymanager.h:45
#7  0xb7f519ef in KNArticleManager::processJob (this=0x828ea30, j=0x85d5488)
    at knarticlemanager.cpp:909
#8  0xb7f1bc1f in KNJobConsumer::jobDone (this=0x828ea58, j=0x85d5488)
    at knjobdata.cpp:52
#9  0xb7f1bf4d in KNJobData::notifyConsumer (this=0xb60759e8)
    at knjobdata.cpp:83
#10 0xb7f13a6b in KNNetAccess::threadDoneNntp (this=0x82d14d0)
    at knnetaccess.cpp:337
#11 0xb7f143b8 in KNNetAccess::slotThreadSignal (this=0x82d14d0, i=11)
    at knnetaccess.cpp:396
#12 0xb7f151f6 in KNNetAccess::qt_invoke (this=0x82d14d0, _id=2, _o=0xbffff020)
    at qucom_p.h:388
#13 0xb650d067 in QObject::activate_signal ()
   from /usr/share/qt3/lib/libqt-mt.so.3
#14 0xb650d1be in QObject::activate_signal ()
   from /usr/share/qt3/lib/libqt-mt.so.3
#15 0xb6828ee0 in QSocketNotifier::activated ()
   from /usr/share/qt3/lib/libqt-mt.so.3
#16 0xb6528036 in QSocketNotifier::event ()
   from /usr/share/qt3/lib/libqt-mt.so.3
#17 0xb64b5370 in QApplication::internalNotify ()
   from /usr/share/qt3/lib/libqt-mt.so.3
#18 0xb64b49d4 in QApplication::notify () from /usr/share/qt3/lib/libqt-mt.so.3
#19 0xb6ac9285 in KApplication::notify (this=0xbffff600, receiver=0x82d1548, 
    event=0xbffff3c0) at kapplication.cpp:550
#20 0xb64a5a10 in QEventLoop::activateSocketNotifiers ()
   from /usr/share/qt3/lib/libqt-mt.so.3
#21 0xb6461917 in QEventLoop::processEvents ()
   from /usr/share/qt3/lib/libqt-mt.so.3
#22 0xb64c674c in QEventLoop::enterLoop ()
   from /usr/share/qt3/lib/libqt-mt.so.3
#23 0xb64c660e in QEventLoop::exec () from /usr/share/qt3/lib/libqt-mt.so.3
#24 0xb64b557b in QApplication::exec () from /usr/share/qt3/lib/libqt-mt.so.3
#25 0x08050348 in main (argc=21, argv=0x15) at main.cpp:41
Comment 3 Olivier Trichet 2008-11-12 19:41:22 UTC
Still reproducible in kde4.

Note: last time I check (with knode from kde 3.5), I _understood_ this bug was caused by a qcstring/qbytearray being shared by 2 threads (knode and kio_nntp).
The pb might dissappear if knode goes akonadi
Comment 4 Michael Leupold 2009-04-06 10:38:24 UTC
SVN commit 949915 by mleupold:

Don't crash on closing an article widget opened by clicking a reference while the article isn't fully loaded yet.

BUG: 71102

 M  +5 -1      articlewidget.cpp  
 M  +13 -1     knjobdata.cpp  
 M  +5 -0      knjobdata.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=949915
Comment 5 Michael Leupold 2009-04-06 10:52:25 UTC
SVN commit 949920 by mleupold:

Backport of r949915.

Don't crash on closing an article widget opened by clicking a reference while the article isn't fully loaded yet.

CCBUG: 71102


 M  +5 -1      articlewidget.cpp  
 M  +13 -1     knjobdata.cpp  
 M  +5 -0      knjobdata.h  


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