Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 203433 - please add patch to kdelibs fixing konqueror DOM::NodeImpl::attach crash
Summary: please add patch to kdelibs fixing konqueror DOM::NodeImpl::attach crash
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-12-27 10:04 UTC by kavol
Modified: 2008-04-15 05:42 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kavol 2007-12-27 10:04:55 UTC
hello,

I was experiencing a nasty crash in Konqueror which is fixed now, and I would like to ask you to include the patch fixing this please

see here: http://bugs.kde.org/show_bug.cgi?id=125206#c14

Reproducible: Always




I generated these two patches using the provided websvn link:

--- trunk/KDE/kdelibs/khtml/html/html_objectimpl.cpp    2007/10/25 06:48:37     729135
+++ trunk/KDE/kdelibs/khtml/html/html_objectimpl.cpp    2007/12/27 04:54:22     753268
@@ -243,7 +243,12 @@

     _style->deref();
     NodeBaseImpl::attach();
+
+    if (m_render) QTimer::singleShot( 0, this, SLOT( slotEmitLoadEvent() ) );
+}

+void HTMLObjectBaseElementImpl::slotEmitLoadEvent()
+{
     // ### do this when we are actually finished loading instead
     if (m_render) dispatchHTMLEvent(EventImpl::LOAD_EVENT, false, false);
 }

--- trunk/KDE/kdelibs/khtml/html/html_objectimpl.h      2007/10/25 06:48:37     729135
+++ trunk/KDE/kdelibs/khtml/html/html_objectimpl.h      2007/12/27 04:54:22     753268
@@ -62,6 +62,7 @@
     virtual void removeId(const QString& id);
 protected Q_SLOTS:
     void slotRenderAlternative();
+    void slotEmitLoadEvent();
 protected:
     DOMString     m_name;
 };


then I put a copy of kdelibs-3.5.8-r1.ebuild into my local portage overlay and added the epatch line to apply them at the end of src_unpack

after having emerged it, I do not experience konqueror crashes at the site novinky.cz any longer
Comment 1 Carsten Lohrke (RETIRED) gentoo-dev 2007-12-27 16:29:11 UTC
Waiting for Maksim's reply on the upstream bug.
Comment 2 kavol 2007-12-28 13:57:41 UTC
(In reply to comment #1)
> Waiting for Maksim's reply on the upstream bug.

ok, but ... I do not know how the KDE branching works, will it apply to previous KDE versions (that are affected as well) if you rely on upstream?

- that was my point, to have it in older kdelibs, since 3.5.8 is still ~masked

I was trying to help but maybe I should have studied at first, how the distribution channels go ... sorry if my effort is a bit contraproductive; if you tell me, I'll know next time :-)
Comment 3 Wulf Krueger (RETIRED) gentoo-dev 2008-03-28 21:39:38 UTC
I can't reproduce this on 3.5.9. Can you please try yourself?
Comment 4 kavol 2008-03-29 15:49:19 UTC
(In reply to comment #3)
> I can't reproduce this on 3.5.9. Can you please try yourself?

right now, it does not crash for me, but unfortunatelly it means nothing, the bug is not 100% reproducible ...

I thought the fix should have been included in KDE 3.5.9 (which is still ~arch), but looking at the sources, I do not see the patch applied
Comment 5 kavol 2008-04-06 09:10:32 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > I can't reproduce this on 3.5.9. Can you please try yourself?
> 
> right now, it does not crash for me, but unfortunatelly it means nothing, the
> bug is not 100% reproducible ...

it crashed just a few minutes ago trying to open http://www.novinky.cz/clanek/136942-muze-na-kolejich-neprobudilo-ani-kdyz-ho-prejela-tramvaj.html

konqueror & kdelibs 3.5.9 ...

 [?1034hUsing host libthread_db library "/lib/libthread_db.so.1".
[KCrash handler]
#5  0x00000036eb6303c5 in raise () from /lib/libc.so.6
#6  0x00000036eb63173e in abort () from /lib/libc.so.6
#7  0x00000036eb629b1f in __assert_fail () from /lib/libc.so.6
#8  0x000000323e5a8948 in DOM::NodeImpl::attach (this=<value optimized out>)
    at dom_nodeimpl.cpp:836
#9  0x000000323e5a89af in DOM::NodeBaseImpl::attach (
    this=<value optimized out>) at dom_nodeimpl.cpp:1402
#10 0x000000323e5a89af in DOM::NodeBaseImpl::attach (
    this=<value optimized out>) at dom_nodeimpl.cpp:1402
#11 0x000000323e5a89af in DOM::NodeBaseImpl::attach (
    this=<value optimized out>) at dom_nodeimpl.cpp:1402
#12 0x000000323e5a976c in DOM::NodeBaseImpl::appendChild (
    this=<value optimized out>, newChild=<value optimized out>, 
    exceptioncode=<value optimized out>) at dom_nodeimpl.cpp:1308
#13 0x000000323e6ea930 in DOM::Node::appendChild (this=<value optimized out>, 
    newChild=<value optimized out>) at dom_node.cpp:296
#14 0x000000323e6738c2 in KJS::DOMNodeProtoFunc::tryCall (
    this=<value optimized out>, exec=<value optimized out>, 
    thisObj=<value optimized out>, args=<value optimized out>)
    at kjs_dom.cpp:582
#15 0x000000323e667bc4 in KJS::DOMFunction::call (this=<value optimized out>, 
    exec=<value optimized out>, thisObj=<value optimized out>, 
    args=<value optimized out>) at kjs_binding.cpp:136
#16 0x000000323ec4ea72 in KJS::Object::call (this=<value optimized out>, 
    exec=<value optimized out>, thisObj=<value optimized out>, 
    args=<value optimized out>) at object.cpp:73
#17 0x000000323ec2c4c5 in KJS::FunctionCallNode::evaluate (
    this=<value optimized out>, exec=<value optimized out>) at nodes.cpp:870
#18 0x000000323ec293d9 in KJS::ExprStatementNode::execute (
    this=<value optimized out>, exec=<value optimized out>) at nodes.cpp:1980
#19 0x000000323ec27461 in KJS::SourceElementsNode::execute (
    this=<value optimized out>, exec=<value optimized out>) at nodes.cpp:3108
#20 0x000000323ec25dd3 in KJS::BlockNode::execute (this=<value optimized out>, 
    exec=<value optimized out>) at nodes.cpp:1942
#21 0x000000323ec2936c in KJS::IfNode::execute (this=<value optimized out>, 
    exec=<value optimized out>) at nodes.cpp:2028
#22 0x000000323ec27528 in KJS::SourceElementsNode::execute (
    this=<value optimized out>, exec=<value optimized out>) at nodes.cpp:3114
#23 0x000000323ec25dd3 in KJS::BlockNode::execute (this=<value optimized out>, 
    exec=<value optimized out>) at nodes.cpp:1942
#24 0x000000323ec2936c in KJS::IfNode::execute (this=<value optimized out>, 
    exec=<value optimized out>) at nodes.cpp:2028
#25 0x000000323ec27461 in KJS::SourceElementsNode::execute (
    this=<value optimized out>, exec=<value optimized out>) at nodes.cpp:3108
#26 0x000000323ec25dd3 in KJS::BlockNode::execute (this=<value optimized out>, 
    exec=<value optimized out>) at nodes.cpp:1942
#27 0x000000323ec284aa in KJS::ForInNode::execute (this=<value optimized out>, 
    exec=<value optimized out>) at nodes.cpp:2306
#28 0x000000323ec27461 in KJS::SourceElementsNode::execute (
    this=<value optimized out>, exec=<value optimized out>) at nodes.cpp:3108
#29 0x000000323ec25dd3 in KJS::BlockNode::execute (this=<value optimized out>, 
    exec=<value optimized out>) at nodes.cpp:1942
#30 0x000000323ec49c5a in KJS::DeclaredFunctionImp::execute (
    this=<value optimized out>, exec=<value optimized out>) at function.cpp:613
#31 0x000000323ec49faf in KJS::FunctionImp::call (this=<value optimized out>, 
    exec=<value optimized out>, thisObj=<value optimized out>, 
    args=<value optimized out>) at function.cpp:373
#32 0x000000323ec4ea72 in KJS::Object::call (this=<value optimized out>, 
    exec=<value optimized out>, thisObj=<value optimized out>, 
    args=<value optimized out>) at object.cpp:73
#33 0x000000323ec2c4c5 in KJS::FunctionCallNode::evaluate (
    this=<value optimized out>, exec=<value optimized out>) at nodes.cpp:870
#34 0x000000323ec293d9 in KJS::ExprStatementNode::execute (
    this=<value optimized out>, exec=<value optimized out>) at nodes.cpp:1980
#35 0x000000323ec27461 in KJS::SourceElementsNode::execute (
    this=<value optimized out>, exec=<value optimized out>) at nodes.cpp:3108
#36 0x000000323ec25dd3 in KJS::BlockNode::execute (this=<value optimized out>, 
    exec=<value optimized out>) at nodes.cpp:1942
#37 0x000000323ec41131 in KJS::InterpreterImp::evaluate (
    this=<value optimized out>, code=<value optimized out>, 
    thisV=<value optimized out>) at internal.cpp:904
#38 0x000000323ec4f1c5 in KJS::Interpreter::evaluate (
    this=<value optimized out>, code=<value optimized out>, 
    thisV=<value optimized out>) at interpreter.cpp:166
#39 0x000000323e6bd91b in KJS::KJSProxyImpl::evaluate (
    this=<value optimized out>, filename=<value optimized out>, 
    baseLine=<value optimized out>, str=<value optimized out>, 
    n=<value optimized out>, completion=) at kjs_proxy.cpp:164
#40 0x000000323e5766ed in KHTMLPart::executeScript (
    this=<value optimized out>, filename=<value optimized out>, 
    baseLine=<value optimized out>, n=<value optimized out>, 
    script=<value optimized out>) at khtml_part.cpp:1155
#41 0x000000323e5c1149 in khtml::HTMLTokenizer::scriptExecution (
    this=<value optimized out>, str=<value optimized out>, 
    scriptURL=<value optimized out>, baseLine=<value optimized out>)
    at htmltokenizer.cpp:452
#42 0x000000323e5c1663 in khtml::HTMLTokenizer::scriptHandler (
    this=<value optimized out>) at htmltokenizer.cpp:416
#43 0x000000323e5c2040 in khtml::HTMLTokenizer::parseSpecial (
    this=<value optimized out>, src=<value optimized out>)
    at htmltokenizer.cpp:332
#44 0x000000323e5c3a54 in khtml::HTMLTokenizer::parseTag (
    this=<value optimized out>, src=<value optimized out>)
    at htmltokenizer.cpp:1211
#45 0x000000323e5c3d80 in khtml::HTMLTokenizer::write (
    this=<value optimized out>, str=<value optimized out>, 
    appendData=<value optimized out>) at htmltokenizer.cpp:1457
#46 0x000000323e5c126f in khtml::HTMLTokenizer::notifyFinished (
    this=<value optimized out>) at htmltokenizer.cpp:1768
#47 0x000000323e660387 in khtml::CachedScript::checkNotify (
    this=<value optimized out>) at loader.cpp:369
#48 0x000000323e662592 in khtml::CachedScript::data (
    this=<value optimized out>, buffer=<value optimized out>, 
    eof=<value optimized out>) at loader.cpp:361
#49 0x000000323e65ff38 in khtml::Loader::slotFinished (
    this=<value optimized out>, job=<value optimized out>) at loader.cpp:1205
#50 0x000000323e6600f0 in khtml::Loader::qt_invoke (
    this=<value optimized out>, _id=<value optimized out>, 
    _o=<value optimized out>) at loader.moc:260
#51 0x000000399633c012 in QObject::activate_signal ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#52 0x000000323c361a14 in KIO::Job::result (this=<value optimized out>, 
    t0=<value optimized out>) at jobclasses.moc:162
#53 0x000000323c3662f0 in KIO::Job::emitResult (this=<value optimized out>)
    at job.cpp:235
#54 0x000000323c366851 in KIO::SimpleJob::slotFinished (
    this=<value optimized out>) at job.cpp:601
#55 0x000000323c366b21 in KIO::TransferJob::slotFinished (
    this=<value optimized out>) at job.cpp:971
#56 0x000000323c365307 in KIO::TransferJob::qt_invoke (
    this=<value optimized out>, _id=<value optimized out>, 
    _o=<value optimized out>) at jobclasses.moc:1071
#57 0x000000399633c012 in QObject::activate_signal ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#58 0x000000399633cb7a in QObject::activate_signal ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#59 0x000000323c356b26 in KIO::SlaveInterface::dispatch (
    this=<value optimized out>, _cmd=<value optimized out>, 
    rawdata=<value optimized out>) at slaveinterface.cpp:243
#60 0x000000323c3573e9 in KIO::SlaveInterface::dispatch (
    this=<value optimized out>) at slaveinterface.cpp:173
#61 0x000000323c3535cf in KIO::Slave::gotInput (this=<value optimized out>)
    at slave.cpp:300
#62 0x000000323c354ea2 in KIO::Slave::qt_invoke (this=<value optimized out>, 
    _id=<value optimized out>, _o=<value optimized out>) at slave.moc:113
#63 0x000000399633c012 in QObject::activate_signal ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#64 0x000000399633caa4 in QObject::activate_signal ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#65 0x0000003996353d17 in QSocketNotifier::event ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#66 0x00000039962eb3eb in QApplication::internalNotify ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#67 0x00000039962ebf1a in QApplication::notify ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#68 0x000000323aad329a in KApplication::notify (this=<value optimized out>, 
    receiver=<value optimized out>, event=<value optimized out>)
    at kapplication.cpp:550
#69 0x00000039962e258e in QEventLoop::activateSocketNotifiers ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#70 0x00000039962a57bd in QEventLoop::processEvents ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#71 0x00000039962fe50a in QEventLoop::enterLoop ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#72 0x00000039962fe3ee in QEventLoop::exec ()
   from /usr/qt/3/lib64/libqt-mt.so.3
#73 0x00000031fa048388 in kdemain (argc=<value optimized out>, 
    argv=<value optimized out>) at konq_main.cc:206
#74 0x00000036eb61db74 in __libc_start_main () from /lib/libc.so.6
#75 0x0000000000400809 in _start ()
Comment 6 Wulf Krueger (RETIRED) gentoo-dev 2008-04-15 05:42:27 UTC
Fixed in CVS in kdelibs-3.5.9-r2.