Bug 177702 - High CPU usage when saving Track Details several times
Summary: High CPU usage when saving Track Details several times
Status: RESOLVED DUPLICATE of bug 174984
Alias: None
Product: amarok
Classification: Applications
Component: general (show other bugs)
Version: 2.0
Platform: Compiled Sources Unspecified
: NOR normal
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-13 19:54 UTC by Daniel Hahler
Modified: 2008-12-14 16:02 UTC (History)
1 user (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 Daniel Hahler 2008-12-13 19:54:39 UTC
Version:           2.0 (using Devel)
Installed from:    Compiled sources

I've been editing Track Details for groups of songs in the collection browser (grouped by Artist, filtered by "Track", scrolled down to e.g. "Track01", context menu: "Edit Track Details", emptied Artist field, clicked Save; repeat at "scrolled down to Track*").

Currently, amarok hangs for more than 5 minutes already after having clicked "Save" (for a single file).
Amarok hogs the whole CPU core it is running on.

My guess is that saving Track Details several times for different files causes this (the more often you save/update track details again for a set of files (which might be only 1)), the more time is spent somewhere.
That's what I've observed in the previous saves: after having saved about 10 groups, it got slower each time afterwards.
Maybe it's related to a group only consisting of a single entry? (which has been the case for the last groups).


I've attached gdb to the amarokapp process now, which gives the following backtrace.

I hope this helps and I will provide any other information you might need.

(gdb) bt                                                                
#0  0x497f519e in QApplication::compressEvent () from /usr/lib/libQtGui.so.4
#1  0xb7902c6c in QCoreApplication::postEvent () from /usr/lib/libQtCore.so.4
#2  0x4987e705 in QWidgetPrivate::dirtyWidget_sys () from /usr/lib/libQtGui.so.4
#3  0x499b92d4 in ?? () from /usr/lib/libQtGui.so.4                             
#4  0x499b954c in ?? () from /usr/lib/libQtGui.so.4                             
#5  0x499b9723 in QWidget::update () from /usr/lib/libQtGui.so.4                
#6  0x49cce2e2 in ?? () from /usr/lib/libQtGui.so.4                             
#7  0x49cce9f7 in QHeaderView::resizeSections () from /usr/lib/libQtGui.so.4    
#8  0x49ccea63 in QHeaderView::updateGeometries () from /usr/lib/libQtGui.so.4  
#9  0x49cb7a79 in QAbstractItemView::doItemsLayout () from /usr/lib/libQtGui.so.4
#10 0x49cced0a in QHeaderView::doItemsLayout () from /usr/lib/libQtGui.so.4      
#11 0x49cc979c in QHeaderView::count () from /usr/lib/libQtGui.so.4              
#12 0x49cf4798 in ?? () from /usr/lib/libQtGui.so.4                              
#13 0x49d0435c in QTreeView::qt_metacall () from /usr/lib/libQtGui.so.4          
#14 0xb7f338ba in Amarok::PrettyTreeView::qt_metacall ()                         
   from /usr/lib/libamaroklib.so.1                                               
#15 0xb7d0738a in ?? () from /usr/lib/libamaroklib.so.1                          
#16 0xb7917b90 in QMetaObject::activate () from /usr/lib/libQtCore.so.4          
#17 0xb7918912 in QMetaObject::activate () from /usr/lib/libQtCore.so.4          
#18 0xb7951d27 in QAbstractItemModel::layoutChanged ()                           
   from /usr/lib/libQtCore.so.4                                                  
#19 0x49d46d38 in QSortFilterProxyModel::invalidate ()                           
   from /usr/lib/libQtGui.so.4                                                   
#20 0x49d49023 in QSortFilterProxyModel::qt_metacall ()                          
   from /usr/lib/libQtGui.so.4
#21 0xb7917b90 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#22 0xb7918912 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#23 0xb7951967 in QAbstractItemModel::modelReset () from /usr/lib/libQtCore.so.4
#24 0xb78f9038 in QAbstractItemModel::reset () from /usr/lib/libQtCore.so.4
#25 0x49d48f81 in QSortFilterProxyModel::qt_metacall ()
   from /usr/lib/libQtGui.so.4
#26 0xb7917b90 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#27 0xb7918912 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#28 0xb7951967 in QAbstractItemModel::modelReset () from /usr/lib/libQtCore.so.4
---Type <return> to continue, or q <return> to quit---
#29 0xb78f9038 in QAbstractItemModel::reset () from /usr/lib/libQtCore.so.4
#30 0xb7cf75c9 in ?? () from /usr/lib/libamaroklib.so.1
#31 0xb7cf77cd in ?? () from /usr/lib/libamaroklib.so.1
#32 0xb7917b90 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#33 0xb7918912 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#34 0xb7dd2b87 in Collection::updated () from /usr/lib/libamaroklib.so.1
#35 0xb0e604cd in ?? () from /usr/lib/kde4/libamarok_collection-sqlcollection.so
#36 0xb0e84604 in ?? () from /usr/lib/kde4/libamarok_collection-sqlcollection.so
#37 0xb7eed94f in TagDialog::saveTags () from /usr/lib/libamaroklib.so.1
#38 0xb7eeee9e in TagDialog::accept () from /usr/lib/libamaroklib.so.1
#39 0xb7ef3bdb in TagDialog::qt_metacall () from /usr/lib/libamaroklib.so.1
#40 0xb7917b90 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#41 0xb7917f90 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#42 0x49de2fe1 in QAbstractButton::clicked () from /usr/lib/libQtGui.so.4
#43 0x49b36169 in ?? () from /usr/lib/libQtGui.so.4
#44 0x49b37d14 in ?? () from /usr/lib/libQtGui.so.4
#45 0x49b37fa6 in QAbstractButton::mouseReleaseEvent ()
   from /usr/lib/libQtGui.so.4
#46 0x4984c9d2 in QWidget::event () from /usr/lib/libQtGui.so.4
#47 0x49b3600e in QAbstractButton::event () from /usr/lib/libQtGui.so.4
#48 0x49bdc8b0 in QPushButton::event () from /usr/lib/libQtGui.so.4
#49 0x497f48ec in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#50 0x497fd121 in QApplication::notify () from /usr/lib/libQtGui.so.4
#51 0x4a1e334d in ?? ()
#52 0xb7902f61 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#53 0x497fc3ae in QApplicationPrivate::sendMouseEvent ()
   from /usr/lib/libQtGui.so.4
#54 0x498666c6 in ?? () from /usr/lib/libQtGui.so.4
#55 0x49865a55 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#56 0x4988f83a in ?? () from /usr/lib/libQtGui.so.4
#57 0x4d984ae8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#58 0x4d988193 in ?? () from /usr/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#59 0x4d988351 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#60 0xb792d5a8 in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#61 0x4988ef35 in ?? () from /usr/lib/libQtGui.so.4
#62 0xb790162a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#63 0xb79017ea in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#64 0xb7903ea5 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#65 0x497f4767 in QApplication::exec () from /usr/lib/libQtGui.so.4
#66 0x0804c042 in _start ()
Comment 1 Jonathan Herdt 2008-12-14 15:02:24 UTC
This is a DUPLICATE of http://bugs.kde.org/show_bug.cgi?id=174984 but I don't know how to mark it so.
Comment 2 Mark Kretschmann 2008-12-14 16:02:11 UTC

*** This bug has been marked as a duplicate of bug 174984 ***