Bug 326192 - Choqok is intermittently extremely (unusably) slow, apparently due to size of archive
Summary: Choqok is intermittently extremely (unusably) slow, apparently due to size of...
Status: CONFIRMED
Alias: None
Product: choqok
Classification: Applications
Component: general (show other bugs)
Version: 1.4
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Daniel Kreuter
URL:
Keywords:
: 327845 349192 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-10-18 10:11 UTC by Ian Dickinson
Modified: 2017-03-06 09:58 UTC (History)
6 users (show)

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 Ian Dickinson 2013-10-18 10:11:10 UTC
I'm using KDE 1.4 installed from ppa:adilson/experimental. it's working fine, but I sometimes have found that it can be unusably slow - for example, taking one or two minutes to respond to mouse clicks or mouseover events. I then moved my ~/.kde/share/apps/choqok directory to a temp location, and now everything seems to be running normally. Looking at that directory, my <user>_Home_Backuprc was 5Mb. So you might have a performance bug related to the size of that file, and separately, it might be a good idea to logrotate the rc files so that they don't grow too large.

Reproducible: Always

Steps to Reproduce:
1. Allow ~/.kde/share/apps/choqok/<user>_Home_Backuprc to get very large
2. Launch choqok

Actual Results:  
Very slow running application. Delete ~/.kde/share/apps/choqok and it speeds up again
Comment 1 Tom Metro 2013-11-07 01:17:30 UTC
I'm experiencing this as well.  Choqok takes on the order of 5+ minutes (not an exageration) to start up. Takes minutes to respiond to interactions.

Worked great when first installed a few weeks ago. Got progressively slower.

Running Choqok 1.4-0ppa~adilson~precise.1 on Ubuntu 12.04, Cinnamon desktop.

% ls --block-size=K -al .kde/share/apps/choqok
[...]
-rw-rw-r--  1 tmetro tmetro     3K Oct 17 18:48 choqokui.rc
-rw-------  1 tmetro tmetro 10830K Oct 28 14:52 Twitter_Home_backuprc
-rw-------  1 tmetro tmetro    14K Oct 28 14:52 Twitter_Inbox_backuprc
-rw-------  1 tmetro tmetro     8K Oct 28 14:52 Twitter_Outbox_backuprc
-rw-------  1 tmetro tmetro    76K Oct 28 14:52 Twitter_Reply_backuprc

I renamed the 11 MB .kde/share/apps/choqok/Twitter_Home_backuprc file, and Choqok went back to loading fast and being responsive.
Comment 2 Aaron Williams 2013-11-25 17:11:19 UTC
I am seeing the exact same behavior. It is unusably slow and slows my machine to a crawl with 100% CPU usage.
Comment 3 robert marshall 2013-11-30 09:36:56 UTC
And here too - I'm also seeing it take ages to exit - the window disappears but the choqok process is still around for 4+ mins  taking 100% of the cpu
Comment 4 Christoph Feck 2013-11-30 16:30:05 UTC
*** Bug 327845 has been marked as a duplicate of this bug. ***
Comment 5 Leszek Godlewski 2013-12-11 11:07:28 UTC
Same here.

choqok-userimages.kcache is 28.8 MB, *_Home_backuprc is 3.2 MB. Other rc files are several dozen kB at worst.
Comment 6 Leszek Godlewski 2014-01-15 18:16:56 UTC
Just attached gdb to Choqok while this happened. Here's a couple of backtraces:

(gdb) bt
#0  0x00007fcdec1213fa in QByteArray::isNull() const () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#1  0x00007fcdec8ad87b in ?? () from /usr/lib/libkdecore.so.5
#2  0x00007fcdec8adbfe in KConfig::deleteGroupImpl(QByteArray const&, QFlags<KConfigBase::WriteConfigFlag>) () from /usr/lib/libkdecore.so.5
#3  0x00007fcdec8b03c0 in KConfigBase::deleteGroup(QString const&, QFlags<KConfigBase::WriteConfigFlag>) () from /usr/lib/libkdecore.so.5
#4  0x00007fcdcdf0334b in TwitterApiMicroBlog::saveTimeline(Choqok::Account*, QString const&, QList<Choqok::UI::PostWidget*> const&) () from /usr/lib/libtwitterapihelper.so.1
#5  0x00007fcdeea19a48 in Choqok::UI::TimelineWidget::saveTimeline() () from /usr/lib/libchoqok.so.1
#6  0x00007fcdec2334c8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007fcdee9fbc95 in ?? () from /usr/lib/libchoqok.so.1
#8  0x00007fcdec2334c8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007fcdec237691 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#10 0x00007fcded0f675c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#11 0x00007fcded0fcdd0 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#12 0x00007fcdef75649a in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#13 0x00007fcdec21f33d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#14 0x00007fcdec24ef83 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#15 0x00007fcdec24c281 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#16 0x00007fcde83d1ea6 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007fcde83d21f8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007fcde83d229c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007fcdec24c4b5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#20 0x00007fcded194896 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#21 0x00007fcdec21df9f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#22 0x00007fcdec21e295 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#23 0x00007fcdec2238db in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#24 0x0000000000409c61 in ?? ()
#25 0x00007fcdeb500995 in __libc_start_main (main=0x409200, argc=1, ubp_av=0x7fffb6ac5148, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffb6ac5138) at libc-start.c:276
#26 0x0000000000409cb7 in _start ()

(gdb) bt
#0  0x00007fcdec8ad864 in ?? () from /usr/lib/libkdecore.so.5
#1  0x00007fcdec8adbfe in KConfig::deleteGroupImpl(QByteArray const&, QFlags<KConfigBase::WriteConfigFlag>) () from /usr/lib/libkdecore.so.5
#2  0x00007fcdec8b03c0 in KConfigBase::deleteGroup(QString const&, QFlags<KConfigBase::WriteConfigFlag>) () from /usr/lib/libkdecore.so.5
#3  0x00007fcdcdf0334b in TwitterApiMicroBlog::saveTimeline(Choqok::Account*, QString const&, QList<Choqok::UI::PostWidget*> const&) () from /usr/lib/libtwitterapihelper.so.1
#4  0x00007fcdeea19a48 in Choqok::UI::TimelineWidget::saveTimeline() () from /usr/lib/libchoqok.so.1
#5  0x00007fcdec2334c8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007fcdee9fbc95 in ?? () from /usr/lib/libchoqok.so.1
#7  0x00007fcdec2334c8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007fcdec237691 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007fcded0f675c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#10 0x00007fcded0fcdd0 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#11 0x00007fcdef75649a in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#12 0x00007fcdec21f33d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#13 0x00007fcdec24ef83 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#14 0x00007fcdec24c281 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#15 0x00007fcde83d1ea6 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007fcde83d21f8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#17 0x00007fcde83d229c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007fcdec24c4b5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#19 0x00007fcded194896 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#20 0x00007fcdec21df9f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#21 0x00007fcdec21e295 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#22 0x00007fcdec2238db in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#23 0x0000000000409c61 in ?? ()
#24 0x00007fcdeb500995 in __libc_start_main (main=0x409200, argc=1, ubp_av=0x7fffb6ac5148, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffb6ac5138) at libc-start.c:276
#25 0x0000000000409cb7 in _start ()
Comment 7 Andrea Scarpino 2015-08-04 09:03:29 UTC
*** Bug 349192 has been marked as a duplicate of this bug. ***
Comment 8 Andriy Gapon 2017-03-05 16:12:02 UTC
Seeing seemingly the same problem with 1.6.
 0x8069189c7 QMapNodeBase::nextNode(void) const+0x17
 0x806523188 KConfig::groupList(void) const+0x798
 0x806527099 KConfig::deleteGroupImpl(QByteArray const&, QFlags<KConfigBase::WriteConfigFlag>)+0x39
 0x80652a674 KConfigBase::deleteGroup(QString const&, QFlags<KConfigBase::WriteConfigFlag>)+0x34
 0x8248705c1 TwitterApiMicroBlog::saveTimeline(Choqok::Account*, QString const&, QList<TwitterApiMicroBlog::saveTimeline::UI::PostWidget*> const&)+0x181
 0x800a97b8f Choqok::UI::TimelineWidget::saveTimeline(void)+0x7f
 0x806a902ab QMetaObject::activate(QObject*, int, int, void**)+0xbcb
 0x806a902ab QMetaObject::activate(QObject*, int, int, void**)+0xbcb
 0x806a88be6 QObject::event(QEvent*)+0x66
 0x80536ff33 QApplicationPrivate::notify_helper(QObject*, QEvent*)+0x133
 0x80537125c QApplication::notify(QObject*, QEvent*)+0x16c
 0x806a60bd4 QCoreApplication::notifyInternal2(QObject*, QEvent*)+0x94
 0x806aaf02a QTimerInfoList::activateTimers(void)+0x37a
 0x806ab046d QEventDispatcherGlib::QEventDispatcherGlib(QEventDispatcherGlibPrivate&, QObject*)+0x42d
 0x80d53b243 g_main_dispatch+0x1a3
 0x80d53b090 g_main_context_dispatch+0x30
 0x80d53b5de g_main_context_iterate+0x1be
 0x80d53b653 g_main_context_iteration+0x53
 0x806aafc58 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x68
 0x806a5cee0 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)+0x190
 0x806a61241 QCoreApplication::exec(void)+0x141
Comment 9 Andriy Gapon 2017-03-06 09:58:53 UTC
The problem seems to be specifically caused by Twitter_Home_backuprc which full of deleted keys.  If I correctly interpret what "[$d]" means.