Bug 245911

Summary: Akregator segfaults if feedlist is empty (0 bytes)
Product: [Applications] akregator Reporter: niks1024
Component: generalAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: floeschie, janiktomanek, kde-i18n, marko.gabriel.cz, niks1024, phaoost, robby.engelmann
Priority: NOR    
Version: 1.6.5   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 4.9.1
Sentry Crash Report:
Attachments: New crash information added by DrKonqi
New crash information added by DrKonqi
New crash information added by DrKonqi

Description niks1024 2010-07-27 15:26:19 UTC
Application: akregator (1.6.5)
KDE Platform Version: 4.4.5 (KDE 4.4.5) (Compiled from sources)
Qt Version: 4.6.3
Operating System: Linux 2.6.34-gentoo-r2 x86_64
Distribution: "Gentoo Base System release 2.0.1"

-- Information about the crash:
Due to a power outage few days ago some files on my HDD got corrupted. Among them seems to be ~/.kde4/share/apps/akregator/data/feeds.opml and now Akregator complains about invalid default feedlist but when I try to create a new one via Feed -> New Folder it segfaults each time.
If it matters some other files might have been lost/damaged too so it might not be necessarily just feeds.opml being empty.

The crash can be reproduced every time.

 -- Backtrace:
Application: Akregator (akregator), signal: Segmentation fault
[KCrash Handler]
#5  Akregator::FeedList::allFeedsFolder (this=0x0) at /usr/src/debug/kde-base/akregator-4.4.5/akregator-4.4.5/akregator/src/feedlist.cpp:412
#6  0x00007fbdcf09759d in Akregator::MainWidget::slotFeedAddGroup (this=0x1c289b0) at /usr/src/debug/kde-base/akregator-4.4.5/akregator-4.4.5/akregator/src/mainwidget.cpp:668
#7  0x00007fbdcf09df95 in Akregator::MainWidget::qt_metacall (this=0x1c289b0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffc06274c0)
    at /usr/src/debug/kde-base/akregator-4.4.5/akregator-4.4.5_build/akregator/src/mainwidget.moc:168
#8  0x00007fbddf8c4316 in QMetaObject::activate (sender=0x1b51de0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x1) at kernel/qobject.cpp:3287
#9  0x00007fbdde9f1432 in QAction::triggered (this=0x0, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#10 0x00007fbdde9f349b in QAction::activate (this=0x1b51de0, event=<value optimized out>) at kernel/qaction.cpp:1255
#11 0x00007fbddee2e691 in QMenuPrivate::activateCausedStack (this=<value optimized out>, causedStack=..., action=0x1b51de0, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1002
#12 0x00007fbddee34202 in QMenuPrivate::activateAction (this=0x1e1ddf0, action=0x1b51de0, action_e=QAction::Trigger, self=<value optimized out>) at widgets/qmenu.cpp:1094
#13 0x00007fbde037354e in KMenu::mouseReleaseEvent (this=0x1e37220, e=0x0) at /usr/src/debug/kde-base/kdelibs-4.4.5/kdelibs-4.4.5/kdeui/widgets/kmenu.cpp:471
#14 0x00007fbddea4d701 in QWidget::event (this=0x1e37220, event=0x7fffc0628290) at kernel/qwidget.cpp:8044
#15 0x00007fbddee363cb in QMenu::event (this=0x1e37220, e=0x7fffc0628290) at widgets/qmenu.cpp:2421
#16 0x00007fbdde9f762c in QApplicationPrivate::notify_helper (this=0x1a65c30, receiver=0x1e37220, e=0x7fffc0628290) at kernel/qapplication.cpp:4302
#17 0x00007fbdde9fe35b in QApplication::notify (this=0x7fffc0628d90, receiver=0x1e37220, e=0x7fffc0628290) at kernel/qapplication.cpp:3867
#18 0x00007fbde02973e6 in KApplication::notify (this=0x7fffc0628d90, receiver=0x1e37220, event=0x7fffc0628290) at /usr/src/debug/kde-base/kdelibs-4.4.5/kdelibs-4.4.5/kdeui/kernel/kapplication.cpp:302
#19 0x00007fbddf8b114b in QCoreApplication::notifyInternal (this=0x7fffc0628d90, receiver=0x1e37220, event=0x7fffc0628290) at kernel/qcoreapplication.cpp:726
#20 0x00007fbdde9fd482 in QCoreApplication::sendEvent (receiver=0x1e37220, event=0x7fffc0628290, alienWidget=0x0, nativeWidget=0x1e37220, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#21 QApplicationPrivate::sendMouseEvent (receiver=0x1e37220, event=0x7fffc0628290, alienWidget=0x0, nativeWidget=0x1e37220, buttonDown=<value optimized out>, lastMouseReceiver=<value optimized out>, 
    spontaneous=true) at kernel/qapplication.cpp:2967
#22 0x00007fbddea7dc7e in QETWidget::translateMouseEvent (this=0x1e37220, event=<value optimized out>) at kernel/qapplication_x11.cpp:4314
#23 0x00007fbddea7c49a in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fffc0628a10) at kernel/qapplication_x11.cpp:3513
#24 0x00007fbddeaa6442 in x11EventSourceDispatch (s=0x1a695f0, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#25 0x00007fbdd853f2d1 in g_main_dispatch (context=0x1a68520) at gmain.c:1960
#26 IA__g_main_context_dispatch (context=0x1a68520) at gmain.c:2513
#27 0x00007fbdd8543128 in g_main_context_iterate (context=0x1a68520, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2591
#28 0x00007fbdd85432dc in IA__g_main_context_iteration (context=0x1a68520, may_block=1) at gmain.c:2654
#29 0x00007fbddf8da673 in QEventDispatcherGlib::processEvents (this=0x1a5c770, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#30 0x00007fbddeaa603e in QGuiEventDispatcherGlib::processEvents (this=0x0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#31 0x00007fbddf8afaa2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#32 0x00007fbddf8afe74 in QEventLoop::exec (this=0x7fffc0628d30, flags=) at kernel/qeventloop.cpp:201
#33 0x00007fbddf8b4aeb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#34 0x000000000040974d in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/kde-base/akregator-4.4.5/akregator-4.4.5/akregator/src/main.cpp:103

Reported using DrKonqi
Comment 1 Yevgeny Kosarzhevsky 2010-09-16 02:41:22 UTC
Created attachment 51700 [details]
New crash information added by DrKonqi

after system crash feedlist was empty so I tried to import feed by pressing Ins and got a crash
Comment 2 niks1024 2010-10-24 00:42:37 UTC
Created attachment 52810 [details]
New crash information added by DrKonqi

akregator (1.6.5) on KDE Platform 4.5.2 (KDE 4.5.2) using Qt 4.6.3

Yo, guess what. Power went out, feedlist.opml got currupt *again* just because Akregator keeps the darn file open even when it's been weeks since I changed my feeds (also nor me nor my HDD is happy for all those unnecesarry writes you're making).
Not that I expect you to care. Just wanted to inform you that the next time this happens I'm ditching your shitware. Just like the local Debian/Ubuntu developer I happen know so really no one likes your shit.
Cheers!
Soon-to-be-ex-Akregator-user

-- Backtrace (Reduced):
#6  Akregator::FeedList::allFeedsFolder (this=0x0) at /usr/src/debug/kde-base/akregator-4.4.6/akregator-4.4.6/akregator/src/feedlist.cpp:412
#7  0x00007fd653d69d4d in Akregator::MainWidget::slotFeedAddGroup (this=0x242e680) at /usr/src/debug/kde-base/akregator-4.4.6/akregator-4.4.6/akregator/src/mainwidget.cpp:668
#8  0x00007fd653d70745 in Akregator::MainWidget::qt_metacall (this=0x242e680, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff727a96e0) at /usr/src/debug/kde-base/akregator-4.4.6/akregator-4.4.6_build/akregator/src/mainwidget.moc:168
[...]
#10 0x00007fd668365412 in QAction::triggered (this=0x0, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#11 0x00007fd66836747b in QAction::activate (this=0x242fbd0, event=<value optimized out>) at kernel/qaction.cpp:1255
Comment 3 Christophe Marin 2010-11-26 14:43:38 UTC
*** Bug 255645 has been marked as a duplicate of this bug. ***
Comment 4 marko.gabriel.cz 2011-01-13 10:52:25 UTC
Created attachment 55956 [details]
New crash information added by DrKonqi

akregator (1.6.5) on KDE Platform 4.5.5 (KDE 4.5.5) using Qt 4.7.0

- What I was doing when the application crashed:I removed contents the feeds.opml file and then try to add a feed in Akregator. Few days ago I've had some troubles with my file system. After repair it via fsck contents from plasma desktop configuration file appeared in feeds.opml, so I removed them.

-- Backtrace (Reduced):
#7  0x0335f497 in Akregator::FeedList::allFeedsFolder() () from /usr/lib/kde4/akregatorpart.so
#8  0x033c6855 in Akregator::MainWidget::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/kde4/akregatorpart.so
[...]
[...]
#11 0x01035f99 in QAction::triggered (this=0x82d49a8, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#12 0x010378dc in QAction::activate (this=0x82d49a8, event=QAction::Trigger) at kernel/qaction.cpp:1256
#13 0x01039b68 in QAction::event (this=0x0, e=0x0) at kernel/qaction.cpp:1182
Comment 5 Christophe Marin 2011-04-06 15:56:31 UTC
*** Bug 254959 has been marked as a duplicate of this bug. ***
Comment 6 Marta Rybczyńska 2011-08-15 19:49:39 UTC
Bug fix posted to Review Board.
Comment 7 Christophe Marin 2011-08-28 15:16:03 UTC
*** Bug 279192 has been marked as a duplicate of this bug. ***
Comment 8 Marta Rybczyńska 2011-08-31 21:30:10 UTC
Fixed by commit a5dc1aee44429faa770086b5797032fb0409d7a2 in 4.7,
ff1fd36bf88562588e3899e1d81e5d410857ebbe in master.
Comment 9 Janek Bevendorff 2012-08-22 19:11:55 UTC
*** Bug 305591 has been marked as a duplicate of this bug. ***
Comment 10 Allen Winter 2012-08-22 22:26:33 UTC
Git commit 470a9b114365d7bccaecb9afb6edf7ec6615691c by Allen Winter.
Committed on 23/08/2012 at 00:24.
Pushed by winterz into branch 'KDE/4.9'.

In feedListToOPML(), add a crash guard for m_feedList

Should fix the case of even the default feedlist being empty.
FIXED-IN: 4.9.1

M  +6    -2    akregator/src/mainwidget.cpp

http://commits.kde.org/kdepim/470a9b114365d7bccaecb9afb6edf7ec6615691c