[Bug 20875] New: Konqueror&KJS eat too much CPU on some webpages.

bugzilla-daemon at bugzilla.ubuntu.com bugzilla-daemon at bugzilla.ubuntu.com
Mon Dec 12 08:27:28 UTC 2005


Please do not reply to this email.  You can add comments at
http://bugzilla.ubuntu.com/show_bug.cgi?id=20875
Ubuntu | konqueror

           Summary: Konqueror&KJS eat too much CPU on some webpages.
           Product: Ubuntu
           Version: unspecified
          Platform: i386
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: konqueror
        AssignedTo: jriddell at ubuntu.com
        ReportedBy: mwg at mwg.dp.ua
         QAContact: kubuntu-bugs at lists.ubuntu.com


(Please advise me what information should I add to my report)

Here are some samples :

strace ... :

gettimeofday({1134375219, 688535}, NULL) = 0
gettimeofday({1134375219, 691884}, NULL) = 0
gettimeofday({1134375219, 695348}, NULL) = 0
rt_sigaction(SIGVTALRM, {0xb60ccab0, [VTALRM], SA_RESTART}, {SIG_DFL}, 8) = 0
setitimer(ITIMER_VIRTUAL, {it_interval={10, 0}, it_value={5, 0}},
{it_interval={0, 0}, it_value={0, 0}}) = 0
gettimeofday({1134375219, 711568}, NULL) = 0
setitimer(ITIMER_VIRTUAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
rt_sigaction(SIGVTALRM, {SIG_DFL}, {0xb60ccab0, [VTALRM], SA_RESTART}, 8) = 0
gettimeofday({1134375219, 722879}, NULL) = 0
gettimeofday({1134375219, 726409}, NULL) = 0
gettimeofday({1134375219, 729720}, NULL) = 0
gettimeofday({1134375219, 733067}, NULL) = 0
gettimeofday({1134375219, 740530}, NULL) = 0
rt_sigaction(SIGVTALRM, {0xb60ccab0, [VTALRM], SA_RESTART}, {SIG_DFL}, 8) = 0
setitimer(ITIMER_VIRTUAL, {it_interval={10, 0}, it_value={5, 0}},
{it_interval={0, 0}, it_value={0, 0}}) = 0
gettimeofday({1134375219, 752968}, NULL) = 0
setitimer(ITIMER_VIRTUAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
rt_sigaction(SIGVTALRM, {SIG_DFL}, {0xb60ccab0, [VTALRM], SA_RESTART}, 8) = 0
gettimeofday({1134375219, 763880}, NULL) = 0
gettimeofday({1134375219, 768335}, NULL) = 0
gettimeofday({1134375219, 771611}, NULL) = 0
gettimeofday({1134375219, 774984}, NULL) = 0

ltrace ... | c++filt :

QPtrCollection::newItem(void*)(0x81af8a8, 0xa328908, 0x858e140, 0xb7524798, 61)
= 0xa328908
QPtrCollection::newItem(void*)(0x8054c88, 0x9eb07e0, 0xbfe03d18, 0xb75246b0,
0x8054c64) = 0x9eb07e0
QPtrCollection::newItem(void*)(0xa8b1538, 0x9e9c4a8, 0xbfe03cc8, 0xb75243ce,
0xb76a75ee) = 0x9e9c4a8
QPtrCollection::newItem(void*)(0x91ed2a0, 0xa6b7538, 0xbfe03cb8, 0xb75243ce,
0x91ed2a0) = 0xa6b7538
QPtrCollection::newItem(void*)(0x81af8a8, 0xa4aab20, 0xa328130, 0xb7524798,
0xb7d8d868) = 0xa4aab20
QPtrCollection::newItem(void*)(0x81af8a8, 0xa064c38, 0xa7cf600, 0xb7524798, 61)
= 0xa064c38
QPtrCollection::newItem(void*)(0xa7dade0, 0xbfe03ba0, 0xbfe03b38, 0xb75243ce,
0xb7cbfd04) = 0xbfe03ba0
QPtrCollection::newItem(void*)(0x81af8a8, 0x8472570, 0xa0fb920, 0xb7524798, 61)
= 0x8472570
QPtrCollection::newItem(void*)(0x9fb88f0, 0xbfe03ba0, 0xbfe03b38, 0xb75243ce,
0x89606d0) = 0xbfe03ba0
QPtrCollection::newItem(void*)(0x81af8a8, 0x93a73a8, 0xa21ce00, 0xb7524798, 61)
= 0x93a73a8
QPtrCollection::newItem(void*)(0xa13bce0, 0xbfe03ba0, 0xbfe03b38, 0xb75243ce,
0x9ed7f40) = 0xbfe03ba0
QPtrCollection::newItem(void*)(0x81af8a8, 0x851fdd0, 0xa18b7c8, 0xb7524798, 61)
= 0x851fdd0
QPtrCollection::newItem(void*)(0xa89c418, 0xbfe03ba0, 0xbfe03b38, 0xb75243ce,
0x9de6350) = 0xbfe03ba0
QPtrCollection::newItem(void*)(0x81af8a8, 0xa24b618, 0xa31e768, 0xb7524798, 61)
= 0xa24b618
QPtrCollection::newItem(void*)(0x81af8a8, 0xa24b618, 0xbfe03ba8, 0xb7524798,
0xa31e768) = 0xa24b618
QPtrCollection::newItem(void*)(0x8531778, 0xbfe03ba0, 0xbfe03b38, 0xb75243ce,
0x817b1d0) = 0xbfe03ba0

Stack snapshots taken by gdb :

first :

Thread 1 (Thread -1231239488 (LWP 26278)):
#0  0xb7e6c800 in operator delete[] () from /usr/lib/libstdc++.so.6
#1  0xb754c37a in QStringData::~QStringData () from /usr/lib/libqt-mt.so.3
#2  0xb7540d86 in QStringData::deleteSelf () from /usr/lib/libqt-mt.so.3
#3  0xb61054ed in EmbedLiveConnect::toString () from /usr/lib/libkhtml.so.4
#4  0xb60f3063 in EmbedLiveConnect::EmbedLiveConnect () from /usr/lib/libkhtml.so.4
#5  0xb5e72adc in KJS::Reference::getValue () from /usr/lib/libkjs.so.1
#6  0xb5e72f9d in KJS::Reference::getValue () from /usr/lib/libkjs.so.1
#7  0xb5e75ddf in KJS::FunctionImp::call () from /usr/lib/libkjs.so.1
#8  0xb5e72f8f in KJS::Reference::getValue () from /usr/lib/libkjs.so.1
#9  0xb5e75cdf in KJS::FunctionImp::call () from /usr/lib/libkjs.so.1
#10 0xb5e72f8f in KJS::Reference::getValue () from /usr/lib/libkjs.so.1
#11 0xb5e75cdf in KJS::FunctionImp::call () from /usr/lib/libkjs.so.1
#12 0xb5e73c18 in KJS::FunctionImp::call () from /usr/lib/libkjs.so.1
#13 0xb5e856f8 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#14 0xb5e899cf in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#15 0xb5e85580 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#16 0xb5e8a9c2 in KJS::DeclaredFunctionImp::execute () from /usr/lib/libkjs.so.1
#17 0xb5e73301 in KJS::FunctionImp::call () from /usr/lib/libkjs.so.1
#18 0xb5e7673e in KJS::Object::call () from /usr/lib/libkjs.so.1
#19 0xb5e83657 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#20 0xb5e856f8 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#21 0xb5e89a56 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#22 0xb5e85580 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#23 0xb5e8a9c2 in KJS::DeclaredFunctionImp::execute () from /usr/lib/libkjs.so.1
#24 0xb5e73301 in KJS::FunctionImp::call () from /usr/lib/libkjs.so.1
#25 0xb5e7673e in KJS::Object::call () from /usr/lib/libkjs.so.1
#26 0xb5e83657 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#27 0xb5e856f8 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#28 0xb5e899cf in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#29 0xb5e85580 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#30 0xb5e8a4a6 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#31 0xb5e8a979 in KJS::Interpreter::evaluate () from /usr/lib/libkjs.so.1
#32 0xb6114475 in EmbedLiveConnect::toString () from /usr/lib/libkhtml.so.4
#33 0xb5fa7594 in KHTMLPart::executeScript () from /usr/lib/libkhtml.so.4
#34 0xb60d6632 in EmbedLiveConnect::EmbedLiveConnect () from /usr/lib/libkhtml.so.4
#35 0xb611156f in EmbedLiveConnect::toString () from /usr/lib/libkhtml.so.4
#36 0xb721fc36 in QObject::event () from /usr/lib/libqt-mt.so.3
#37 0xb71b8698 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#38 0xb71b88b6 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#39 0xb7880c3c in KApplication::notify () from /usr/lib/libkdecore.so.4
#40 0xb71485e5 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3
#41 0xb71a998c in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#42 0xb715c35c in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#43 0xb71d0da2 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#44 0xb71d0ccb in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#45 0xb71b7225 in QApplication::exec () from /usr/lib/libqt-mt.so.3
#46 0xb668e44c in kdemain () from /usr/lib/libkdeinit_konqueror.so
#47 0xb7eed540 in kdeinitmain () from /usr/lib/kde3/konqueror.so
#48 0x0804df98 in ?? ()
#49 0x00000003 in ?? ()
#50 0x08135a40 in ?? ()
#51 0xbfe04bb8 in ?? ()
#52 0x0804dfdc in ?? ()
#53 0xb7cbfd04 in free () from /lib/tls/libc.so.6
#54 0x0804e57a in ?? ()
#55 0x00000000 in ?? ()
#0  0xb7e6c800 in operator delete[] () from /usr/lib/libstdc++.so.6

second :

Thread 1 (Thread -1231239488 (LWP 26278)):
#0  0xb5e50216 in KJS::Interpreter::collect () from /usr/lib/libkjs.so.1
#1  0xb5e5034c in KJS::ValueImp::operator new () from /usr/lib/libkjs.so.1
#2  0xb5e59deb in KJS::String::String () from /usr/lib/libkjs.so.1
#3  0xb5e59f08 in KJS::String::String () from /usr/lib/libkjs.so.1
#4  0xb5e75b4f in KJS::FunctionImp::call () from /usr/lib/libkjs.so.1
#5  0xb5e75c7a in KJS::FunctionImp::call () from /usr/lib/libkjs.so.1
#6  0xb5e83324 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#7  0xb5e856f8 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#8  0xb5e89a56 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#9  0xb5e85580 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#10 0xb5e8a9c2 in KJS::DeclaredFunctionImp::execute () from /usr/lib/libkjs.so.1
#11 0xb5e73301 in KJS::FunctionImp::call () from /usr/lib/libkjs.so.1
#12 0xb5e7673e in KJS::Object::call () from /usr/lib/libkjs.so.1
#13 0xb5e83657 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#14 0xb5e856f8 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#15 0xb5e899cf in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#16 0xb5e85580 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#17 0xb5e8a4a6 in KJS::UndefinedImp::toObject () from /usr/lib/libkjs.so.1
#18 0xb5e8a979 in KJS::Interpreter::evaluate () from /usr/lib/libkjs.so.1
#19 0xb6114475 in EmbedLiveConnect::toString () from /usr/lib/libkhtml.so.4
#20 0xb5fa7594 in KHTMLPart::executeScript () from /usr/lib/libkhtml.so.4
#21 0xb60d6632 in EmbedLiveConnect::EmbedLiveConnect () from /usr/lib/libkhtml.so.4
#22 0xb611156f in EmbedLiveConnect::toString () from /usr/lib/libkhtml.so.4
#23 0xb721fc36 in QObject::event () from /usr/lib/libqt-mt.so.3
#24 0xb71b8698 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#25 0xb71b88b6 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#26 0xb7880c3c in KApplication::notify () from /usr/lib/libkdecore.so.4
#27 0xb71485e5 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3
#28 0xb71a998c in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#29 0xb715c35c in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#30 0xb71d0da2 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#31 0xb71d0ccb in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#32 0xb71b7225 in QApplication::exec () from /usr/lib/libqt-mt.so.3
#33 0xb668e44c in kdemain () from /usr/lib/libkdeinit_konqueror.so
#34 0xb7eed540 in kdeinitmain () from /usr/lib/kde3/konqueror.so
#35 0x0804df98 in ?? ()
#36 0x00000003 in ?? ()
#37 0x08135a40 in ?? ()
#38 0xbfe04bb8 in ?? ()
#39 0x0804dfdc in ?? ()
#40 0xb7cbfd04 in free () from /lib/tls/libc.so.6
#41 0x0804e57a in ?? ()
#42 0x00000000 in ?? ()
#0  0xb5e50216 in KJS::Interpreter::collect () from /usr/lib/libkjs.so.1

Mozilla&Firefox have some logic to prevent scripts from eating too much CPU.
Maybe Konq/KJS should have the saem as well.

-- 
Configure bugmail: http://bugzilla.ubuntu.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.




More information about the kubuntu-bugs mailing list