Bug 114831 - Crashes randomly - mk4 storage plugin
Summary: Crashes randomly - mk4 storage plugin
Status: RESOLVED FIXED
Alias: None
Product: akregator
Classification: Applications
Component: general (show other bugs)
Version: 1.2
Platform: unspecified Linux
: HI crash
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
: 115246 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-10-21 19:58 UTC by Thomas Beinicke
Modified: 2005-11-18 08:48 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Backtraces (1.60 KB, application/octet-stream)
2005-10-27 10:59 UTC, Thomas Beinicke
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Beinicke 2005-10-21 19:58:32 UTC
Version:           1.2 (using KDE 3.4.92 (beta2, >= 20051010), Gentoo)
Compiler:          Target: i686-pc-linux-gnu
OS:                Linux (i686) release 2.6.13-dark2

Crashes randomly, not sure what causes it.
Sometimes it runs for hours, sometimes just for a few minutes.

Here is a backtrace:

[Thread debugging using libthread_db enabled]
[New Thread -1240762704 (LWP 30136)]
[KCrash handler]
#4  0xb5ced69f in c4_FormatB::ItemLenOffCol ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#5  0xb5ced74d in c4_FormatB::GetOne ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#6  0xb5ced7d0 in c4_FormatS::Get ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#7  0xb5cf0bf0 in c4_Handler::GetBytes ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#8  0xb5cff1d7 in c4_Sequence::Get ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#9  0xb5cf5d81 in c4_HashViewer::CalcHash ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#10 0xb5cf7d3b in c4_HashViewer::InsertDict ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#11 0xb5cf7f51 in c4_HashViewer::SetItem ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#12 0xb5ce5369 in c4_CustomSeq::DoSet ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#13 0xb5ce5a8a in c4_CustomHandler::Set ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#14 0xb5cffb9d in c4_Sequence::SetAt ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#15 0xb5cddb33 in Akregator::Backend::StorageMK4Impl::storeFeedList ()
   from /usr/kde/devel/lib/kde3/libakregator_mk4storage_plugin.so
#16 0xb5eade9a in Akregator::Part::slotSaveFeedList ()
   from /usr/kde/devel/lib/kde3/libakregatorpart.so
#17 0xb5eb0430 in Akregator::Part::qt_invoke ()
   from /usr/kde/devel/lib/kde3/libakregatorpart.so
#18 0xb67dc7b9 in QObject::activate_signal ()
   from /usr/qt/devel/lib/libqt-mt.so.3
#19 0xb67dcc54 in QObject::activate_signal ()
   from /usr/qt/devel/lib/libqt-mt.so.3
#20 0xb6b13699 in QTimer::timeout () from /usr/qt/devel/lib/libqt-mt.so.3
#21 0xb67fff3e in QTimer::event () from /usr/qt/devel/lib/libqt-mt.so.3
#22 0xb677e79a in QApplication::internalNotify ()
   from /usr/qt/devel/lib/libqt-mt.so.3
#23 0xb677f22f in QApplication::notify () from /usr/qt/devel/lib/libqt-mt.so.3
#24 0xb6dbe872 in KApplication::notify ()
   from /usr/kde/devel/lib/libkdecore.so.4
#25 0xb677366d in QEventLoop::activateTimers ()
   from /usr/qt/devel/lib/libqt-mt.so.3
#26 0xb672cfce in QEventLoop::processEvents ()
   from /usr/qt/devel/lib/libqt-mt.so.3
#27 0xb6794ddd in QEventLoop::enterLoop ()
   from /usr/qt/devel/lib/libqt-mt.so.3
#28 0xb6794ce6 in QEventLoop::exec () from /usr/qt/devel/lib/libqt-mt.so.3
#29 0xb677e0ef in QApplication::exec () from /usr/qt/devel/lib/libqt-mt.so.3
#30 0x08050493 in ?? ()
#31 0xbf96d6c4 in ?? ()
#32 0x00000001 in ?? ()
#33 0x00000001 in ?? ()
#34 0x00000000 in ?? ()
#35 0x00000020 in ?? ()
#36 0xb6f46734 in kde_malloc_is_used ()
   from /usr/kde/devel/lib/libkdecore.so.4
#37 0xb6eec155 in malloc () from /usr/kde/devel/lib/libkdecore.so.4
#38 0xb60d1564 in __libc_start_main () from /lib/libc.so.6
#39 0x08050301 in ?? ()
Comment 1 Frank Osterfeld 2005-10-23 09:18:38 UTC
Haven't seen this one yet, but this is very critical if it happens for more users. Could you try the following?

1) delete $HOME/.kde/share/apps/akregator/Archive/feedlistbackup.mk4

2) Check some of the backtraces whether "storeFeedList" shows up in all of them
Comment 2 Thomas Beinicke 2005-10-27 10:59:37 UTC
Created attachment 13171 [details]
Backtraces
Comment 3 Thomas Beinicke 2005-10-27 10:59:55 UTC
I deleted $HOME/.kde/share/apps/akregator/Archive/feedlistbackup.mk4 but that didn't change anything.

Here are some more backtraces, "storeFeedList" is always in there.
If I can somehow get more information for you please let me know.
Also this happens without me doing anything, it can just be minimized.
Comment 4 Frank Osterfeld 2005-10-28 15:04:24 UTC
*** Bug 115246 has been marked as a duplicate of this bug. ***
Comment 5 Frank Osterfeld 2005-10-28 15:07:32 UTC
Interestingly both reporters use Gentoo. Thomas, could you also provide your CFLAGS setting?

These are from #115246:

CFLAGS="-O2 -mcpu=i686 -march=pentium3 -mfpmath=sse -msse2 -mmmx" 
Comment 6 luca casagrande 2005-10-28 16:30:13 UTC
I can make it crashes always closing it from the system tray.For you it's the same?
Comment 7 Frank Osterfeld 2005-10-28 16:44:10 UTC
It crashes only if you close it from systray but not when you choose File->Quit from the menu?? The actions performed are exactly the same.
Comment 8 luca casagrande 2005-10-28 16:50:35 UTC
Yup, it crashes closing it (all the way). I found a user in GENTOO who compiled it with GCC 4, and got no problem...
Comment 9 Henk Poley 2005-10-30 13:42:48 UTC
I got the same crashes, also using Gentoo. I don't know hwo to reproduce it, I don't even have the trayicon enabled. Closing it from the Akregator menu doesn't produce a crash. It just crashed twice today. Once inside Kontact, no crashreport, Kontact just disappeared. Second time in Kontact I did get a backtrace. I have been running 3.5 beta2 since it came available.

KDE Version: 1.2 (KDE 3.4.92 (beta2, >= 20051010), Gentoo)
Application: KDE feed aggregator
Operating: System  Linux (i686) release 2.6.13-suspend2-r5
Compiler: gcc version 3.3.6 (Gentoo 3.3.6, ssp-3.3.6-1.0, pie-8.7.8)

CFLAGS="-Os -march=athlon-xp -pipe -ggdb3"

Backtrace:

Using host libthread_db library "/lib/libthread_db.so.1".
`system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols.
[Thread debugging using libthread_db enabled]
[New Thread -1238619424 (LWP 20746)]
[KCrash handler]
#4  c4_FormatB::ItemLenOffCol (this=0x8a7b658, index_=0, off_=@0xbfc25f3c, 
    col_=@0xbfc25f40) at univ.inl:41
#5  0xb582904c in c4_FormatB::GetOne (this=0x8a7b658, index_=0, 
    length_=@0xbfc25f84) at format.cpp:623
#6  0xb58298eb in c4_FormatS::Get (this=0x8a7b658, index_=0, 
    length_=@0xbfc25f84) at format.cpp:896
#7  0xb582a7ea in c4_Handler::GetBytes (this=0xbfc25f40, index_=0, 
    buf_=@0xbfc2601c, copySmall_=false) at handler.cpp:58
#8  0xb5836517 in c4_Sequence::Get (this=0x8a7b150, index_=0, propId_=1, 
    buf_=@0xbfc2601c) at viewx.cpp:356
#9  0xb582ebd0 in c4_HashViewer::CalcHash (this=0x8a7b978, cursor_=
      {_seq = 0x8a7b150, _index = 0}) at handler.inl:35
#10 0xb582ef11 in c4_HashViewer::InsertDict (this=0x8a7b978, row_=0)
    at remap.cpp:302
#11 0xb582f3ff in c4_HashViewer::SetItem (this=0x8a7b978, row_=0, col_=0, 
    buf_=@0xbfc261b0) at remap.cpp:423
#12 0xb5822240 in c4_CustomSeq::DoSet (this=0x0, row_=0, col_=0, 
    buf_=@0xbfc261b0) at custom.cpp:178
#13 0xb5821f05 in c4_CustomHandler::Set (this=0x8a6c860, index_=0, 
    buf_=@0xbfc261b0) at custom.cpp:77
#14 0xb5835cf2 in c4_Sequence::SetAt (this=0x8a79c20, index_=0, newElem_=
      {_seq = 0x820cd98, _index = 0}) at viewx.cpp:116
#15 0xb581c3ca in Akregator::Backend::StorageMK4Impl::storeFeedList (
    this=0x8a7a318, opmlStr=@0xbfc2630c) at mk4.inl:13
#16 0xb558adc4 in Akregator::Part::slotSaveFeedList (this=0x8a64508)
    at akregator_part.cpp:443
#17 0xb558d450 in Akregator::Part::qt_invoke (this=0x8a64508, _id=6, 
    _o=0xbfc263c8) at akregator_part.moc:212
#18 0xb6a13053 in QObject::activate_signal (this=0x8ae3580, clist=0x8a7be70, 
    o=0xbfc263c8) at qconnection.h:56
#19 0xb6a12e94 in QObject::activate_signal (this=0x8a7b658, 
    signal=-1077779512) at qobject.cpp:2324
#20 0xb6d490ab in QTimer::timeout (this=0x0) at qmetaobject.h:261
#21 0xb6a33fe0 in QTimer::event (this=0x8ae3580, e=0x0) at qtimer.cpp:219
#22 0xb69b7b3c in QApplication::internalNotify (this=0x0, receiver=0x8ae3580, 
    e=0xbfc26810) at qapplication.cpp:2615
#23 0xb69b6edd in QApplication::notify (this=0xbfc26a44, receiver=0x8ae3580, 
    e=0xbfc26810) at qapplication.cpp:2372
#24 0xb7018ea4 in KApplication::notify (this=0xbfc26a44, receiver=0x8ae3580, 
    event=0xbfc26810) at kapplication.cpp:550
#25 0xb69a75c9 in QEventLoop::activateTimers (this=0x8165478)
    at qeventloop_unix.cpp:555
#26 0xb69618c7 in QEventLoop::processEvents (this=0x8165478, flags=4)
    at qeventloop_x11.cpp:389
#27 0xb69c9a98 in QEventLoop::enterLoop (this=0x8165478) at qeventloop.cpp:198
#28 0xb69c9948 in QEventLoop::exec (this=0x8165478) at qeventloop.cpp:145
#29 0xb69b7d71 in QApplication::exec (this=0xbfc26a44)
    at qapplication.cpp:2758
#30 0x080592f5 in main (argc=1, argv=0xbfc26c04) at main.cpp:177
Comment 10 Thomas Beinicke 2005-10-31 14:53:31 UTC
Sorry for my late reply I had a nasty hd crash.

Here are my cflags: CFLAGS="-march=athlon-xp -O2"

Here my gcc and kernel version: gcc-4.0.2, glibc-2.3.5.20050725-r0, 2.6.13-dark2 i686

I don't have the crash bug on closing it though.
I can right click on the icon and quit it without problems.

My crashes are totally random though it seems to have the same cause.
Comment 11 Henk Poley 2005-11-06 14:12:01 UTC
Any clue what might cause this? I have seen a couple of crashes with this backtrace already. Crashes ~twice per session.
Comment 12 Frank Osterfeld 2005-11-06 18:20:09 UTC
I don't see anything common in CFLAGS, gcc version etc. All reporters use Gentoo though. Did anyone of you use 3.5 Beta1 or an SVN checkout before? If yes, with or without crashes?
Comment 13 Henk Poley 2005-11-06 19:12:40 UTC
Yes, I have used 3.5 beta1, without crashes.
Comment 14 Frank Osterfeld 2005-11-07 13:48:04 UTC
SVN commit 478644 by osterfeld:

trying to fix the problems with storeFeedList()
Gentoo users, it would be great if someone could apply this patch and check if it solves the problem.
CCBUG: 114831
CCMAIL: zander@kde.org


 M  +24 -12    storagemk4impl.cpp  


--- branches/KDE/3.5/kdepim/akregator/src/mk4storage/storagemk4impl.cpp #478643:478644
@@ -316,14 +316,20 @@
 
 void StorageMK4Impl::storeFeedList(const QString& opmlStr)
 {
-    c4_Row row;
-
+   
     if  (d->feedListView.GetSize() == 0)
+    {
+        c4_Row row;
+        d->pFeedList(row) = !opmlStr.isEmpty() ? opmlStr.utf8().data() : "";
+        d->pTagSet(row) = "";
         d->feedListView.Add(row);
-    
-    row = d->feedListView.GetAt(0);
-    d->pFeedList(row) = opmlStr.utf8().data();
-    d->feedListView.SetAt(0, row);
+    }
+    else
+    {
+        c4_Row row = d->feedListView.GetAt(0);
+        d->pFeedList(row) = !opmlStr.isEmpty() ? opmlStr.utf8().data() : "";
+        d->feedListView.SetAt(0, row);
+    }
     d->modified = true;
 }
 
@@ -338,14 +344,20 @@
 
 void StorageMK4Impl::storeTagSet(const QString& xmlStr)
 {
-    c4_Row row;
-
+   
     if  (d->feedListView.GetSize() == 0)
+    {
+        c4_Row row;
+        d->pTagSet(row) = !xmlStr.isEmpty() ? xmlStr.utf8().data() : "";
+        d->pFeedList(row) = "";
         d->feedListView.Add(row);
-
-    row = d->feedListView.GetAt(0);
-    d->pTagSet(row) = xmlStr.utf8().data();
-    d->feedListView.SetAt(0, row);
+    }
+    else
+    {
+        c4_Row row = d->feedListView.GetAt(0);
+        d->pTagSet(row) = !xmlStr.isEmpty() ? xmlStr.utf8().data() : "";
+        d->feedListView.SetAt(0, row);
+    }
     d->modified = true;
 }
 
Comment 15 Thomas Beinicke 2005-11-07 15:27:59 UTC
I compiled it and use it now.
So far no crash so I hope it's fixed.
But I will let it run for a few days and report back.

I am using Gentoo.
Comment 16 Frank Osterfeld 2005-11-07 16:33:23 UTC
SVN commit 478672 by osterfeld:

this line mixes feed archive and feed list backup and does not make sense at all. Let's see if removing it
fixes 114831. Actually I wonder why this code worked at all for at least some people...
CCBUG: 114831
CCMAIL: zander@kde.org


 M  +0 -1      storagemk4impl.cpp  


--- branches/KDE/3.5/kdepim/akregator/src/mk4storage/storagemk4impl.cpp #478671:478672
@@ -111,7 +111,6 @@
     filePath = d->archivePath +"/feedlistbackup.mk4";
     d->feedListStorage = new c4_Storage(filePath.local8Bit(), true);
     d->feedListView = d->feedListStorage->GetAs("archive[feedList:S,tagSet:S]");
-    d->feedListView = d->feedListView.Hash(hash, 1); // hash on url
     return true;
 }
 
Comment 17 Thomas Beinicke 2005-11-10 22:51:18 UTC
Ok, I didn't have any crashes anymore and akregator was running the whole day.

I am pretty sure it's fixed.

Thanks a lot.
Comment 18 Frank Osterfeld 2005-11-11 10:19:09 UTC
Did you apply the patch from #14 only or also the patch from #16?
Comment 19 Thomas Beinicke 2005-11-11 10:43:16 UTC
I just checked it out from svn again.
First with the #14 patch and then after I saw you submitted another patch I checked it out from svn again and recompiled it.
Comment 20 Frank Osterfeld 2005-11-18 08:48:31 UTC
Seems fixed, let's close it