Bug 98975 - [testcase] display: table; crashes khtml/konqueror
Summary: [testcase] display: table; crashes khtml/konqueror
Status: RESOLVED WORKSFORME
Alias: None
Product: konqueror
Classification: Applications
Component: khtml (show other bugs)
Version: SVN
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
: 141851 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-02-09 23:25 UTC by _
Modified: 2008-05-14 00:03 UTC (History)
2 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 _ 2005-02-09 23:25:19 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc 3.4.3 
OS:                Linux

Testcase at http://www.howtocreate.co.uk/wrongWithIE/?chapter=Table+Styles

Not completely sure if it is really display: table; but I will try to find that out.

This was confirmed on latest CVS, and on KDE 3.4 beta 1 and beta 2.
Comment 1 _ 2005-02-09 23:33:27 UTC
Simplified testcase:
http://www.howtocreate.co.uk/konqueror/tableStyleCrash.html

Freezes Konqueror here on KDE 3.4 beta 1.
Comment 2 illogic-al 2005-02-09 23:42:14 UTC
confirmed freeze with the testcase.

I got a crash with http://www.howtocreate.co.uk/wrongWithIE/?chapter=Table+Styles 
gcc 3.3.1. 
mandrake 9.2
KDE 3.4 beta 2
here's the backtrace;
0x41445656 in waitpid () from /lib/i686/libpthread.so.0
#0  0x41445656 in waitpid () from /lib/i686/libpthread.so.0
#1  0x408697ff in KCrash::defaultCrashHandler(int) (sig=6) at kcrash.cpp:251
#2  0x414444ec in __pthread_clock_settime () from /lib/i686/libpthread.so.0
#3  0x415adca8 in __libc_sigaction () from /lib/i686/libc.so.6
#4  0x41441b8b in raise () from /lib/i686/libpthread.so.0
#5  0x415adb04 in raise () from /lib/i686/libc.so.6
#6  0x415af1e0 in abort () from /lib/i686/libc.so.6
#7  0x415a70ad in __assert_fail () from /lib/i686/libc.so.6
#8  0x41d871f0 in khtml::RenderBlock::makeChildrenNonInline(khtml::RenderObject*) (this=0x8351dd0, insertionPoint=0x0) at render_block.cpp:316
#9  0x41d86c6c in khtml::RenderBlock::addChildToFlow(khtml::RenderObject*, khtml::RenderObject*) (this=0x8351dd0, newChild=0x8351f20, beforeChild=0x0)
    at render_block.cpp:218
#10 0x41dac092 in khtml::RenderFlow::addChild(khtml::RenderObject*, khtml::RenderObject*) (this=0x8351dd0, newChild=0x8351f20, beforeChild=0x0)
    at render_flow.cpp:126
#11 0x41d31dba in DOM::NodeImpl::createRendererIfNeeded() (this=0x835a710)
    at dom_nodeimpl.cpp:954
#12 0x41d38ede in DOM::ElementImpl::attach() (this=0x835a710)
    at dom_elementimpl.cpp:494
#13 0x41d3302e in DOM::NodeBaseImpl::attach() (this=0x8359fc0)
    at dom_nodeimpl.cpp:1389
#14 0x41d63cb6 in DOM::HTMLBodyElementImpl::attach() (this=0x8359fc0)
    at html_baseimpl.cpp:215
#15 0x41d3918a in DOM::ElementImpl::recalcStyle(DOM::NodeImpl::StyleChange) (
    this=0x8359fc0, change=Force) at dom_elementimpl.cpp:555
#16 0x41d5cafd in DOM::HTMLElementImpl::recalcStyle(DOM::NodeImpl::StyleChange)
    (this=0x8359fc0, ch=Force) at html_elementimpl.cpp:262
#17 0x41d392a4 in DOM::ElementImpl::recalcStyle(DOM::NodeImpl::StyleChange) (
    this=0x83588c0, change=Force) at dom_elementimpl.cpp:582
#18 0x41d5cafd in DOM::HTMLElementImpl::recalcStyle(DOM::NodeImpl::StyleChange)
    (this=0x83588c0, ch=Force) at html_elementimpl.cpp:262
#19 0x41d243f4 in DOM::DocumentImpl::recalcStyle(DOM::NodeImpl::StyleChange) (
    this=0x8341cb8, change=Force) at dom_docimpl.cpp:997
#20 0x41d27a89 in DOM::DocumentImpl::updateStyleSelector() (this=0x8341cb8)
    at dom_docimpl.cpp:1865
#21 0x41d27706 in DOM::DocumentImpl::styleSheetLoaded() (this=0x8341cb8)
    at dom_docimpl.cpp:1793
#22 0x41d58db0 in DOM::HTMLLinkElementImpl::finished() (this=0x8359df8)
    at html_headimpl.cpp:251
#23 0x41d58d3c in DOM::HTMLLinkElementImpl::setStyleSheet(DOM::DOMString const&, DOM::DOMString const&) (this=0x8359df8, url=@0x835a070, sheetStr=@0x835a0a4)
    at html_headimpl.cpp:242
#24 0x41e1df0c in khtml::CachedCSSStyleSheet::checkNotify() (this=0x835a050)
    at loader.cpp:264
#25 0x41e1dde5 in khtml::CachedCSSStyleSheet::data(QBuffer&, bool) (
    this=0x835a050, buffer=@0x8359c5c, eof=true) at loader.cpp:252
#26 0x41e21f2d in khtml::Loader::slotFinished(KIO::Job*) (this=0x8235cd8, 
    job=0x833ce68) at loader.cpp:1104
#27 0x41e23cc0 in khtml::Loader::qt_invoke(int, QUObject*) (this=0x8235cd8, 
    _id=2, _o=0xbfffe520) at loader.moc:260
#28 0x40cfe239 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x833ce68, clist=0x8354620, o=0xbfffe520) at kernel/qobject.cpp:2355
#29 0x401e40c2 in KIO::Job::result(KIO::Job*) (this=0x833ce68, t0=0x833ce68)
    at jobclasses.moc:156
#30 0x401cf989 in KIO::Job::emitResult() (this=0x833ce68) at job.cpp:217
#31 0x401d0f48 in KIO::SimpleJob::slotFinished() (this=0x833ce68)
    at job.cpp:536
#32 0x401d3224 in KIO::TransferJob::slotFinished() (this=0x833ce68)
    at job.cpp:896
#33 0x401e6712 in KIO::TransferJob::qt_invoke(int, QUObject*) (this=0x833ce68, 
    _id=17, _o=0xbfffe7e0) at jobclasses.moc:1050
#34 0x40cfe239 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x833d480, clist=0x833c500, o=0xbfffe7e0) at kernel/qobject.cpp:2355
#35 0x40cfe0d8 in QObject::activate_signal(int) (this=0x833d480, signal=6)
    at kernel/qobject.cpp:2324
#36 0x401c25cb in KIO::SlaveInterface::finished() (this=0x833d480)
    at slaveinterface.moc:226
#37 0x401c0ba7 in KIO::SlaveInterface::dispatch(int, QMemArray<char> const&) (
    this=0x833d480, _cmd=104, rawdata=@0xbfffe9a0) at slaveinterface.cpp:237
#38 0x401c0810 in KIO::SlaveInterface::dispatch() (this=0x833d480)
    at slaveinterface.cpp:173
#39 0x401be279 in KIO::Slave::gotInput() (this=0x833d480) at slave.cpp:300
#40 0x401bfcf7 in KIO::Slave::qt_invoke(int, QUObject*) (this=0x833d480, 
    _id=4, _o=0xbfffeae0) at slave.moc:113
#41 0x40cfe239 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x833cff8, clist=0x8342eb0, o=0xbfffeae0) at kernel/qobject.cpp:2355
#42 0x40cfe5ab in QObject::activate_signal(int, int) (this=0x833cff8, 
    signal=2, param=15) at kernel/qobject.cpp:2448
#43 0x41058999 in QSocketNotifier::activated(int) (this=0x833cff8, t0=15)
    at .moc/debug-shared-mt/moc_qsocketnotifier.cpp:85
#44 0x40d1e490 in QSocketNotifier::event(QEvent*) (this=0x833cff8, 
    e=0xbfffed50) at kernel/qsocketnotifier.cpp:258
#45 0x40c9b33f in QApplication::internalNotify(QObject*, QEvent*) (
    this=0xbffff370, receiver=0x833cff8, e=0xbfffed50)
    at kernel/qapplication.cpp:2635
#46 0x40c9a7fc in QApplication::notify(QObject*, QEvent*) (this=0xbffff370, 
    receiver=0x833cff8, e=0xbfffed50) at kernel/qapplication.cpp:2358
#47 0x407d71a6 in KApplication::notify(QObject*, QEvent*) (this=0xbffff370, 
    receiver=0x833cff8, event=0xbfffed50) at kapplication.cpp:549
#48 0x4004a1f1 in QApplication::sendEvent(QObject*, QEvent*) (
    receiver=0x833cff8, event=0xbfffed50) at qapplication.h:491
#49 0x40c895e6 in QEventLoop::activateSocketNotifiers() (this=0x80c93b8)
    at kernel/qeventloop_unix.cpp:578
#50 0x40c4279b in QEventLoop::processEvents(unsigned) (this=0x80c93b8, flags=4)
    at kernel/qeventloop_x11.cpp:383
#51 0x40caf5ca in QEventLoop::enterLoop() (this=0x80c93b8)
    at kernel/qeventloop.cpp:198
#52 0x40caf4e6 in QEventLoop::exec() (this=0x80c93b8)
    at kernel/qeventloop.cpp:145
#53 0x40c9b4bf in QApplication::exec() (this=0xbffff370)
    at kernel/qapplication.cpp:2758
#54 0x4183b1ac in kdemain (argc=4, argv=0x808e890) at konq_main.cc:206
#55 0x417ed980 in kdeinitmain (argc=4, argv=0x808e890) at konqueror_dummy.cc:2
#56 0x0804e445 in launch (argc=4, _name=0x808d7bc "konqueror", 
    args=0x808d819 "/home/kdetest", cwd=0x808d819 "/home/kdetest", envc=53, 
    envs=0x808de59 "", reset_env=true, tty=0x0, avoid_loops=false, 
    startup_id_str=0x808de5d "kube.illogic-al.org;1107987237;707883;10518_TIME86724262") at kinit.cpp:623
#57 0x0804f75f in handle_launcher_request (sock=4) at kinit.cpp:1187
#58 0x0804fd61 in handle_requests (waitForPid=0) at kinit.cpp:1358
#59 0x08051339 in main (argc=3, argv=0xbffff9a4, envp=0xbffff9b4)
    at kinit.cpp:1839
#60 0x4159ac57 in __libc_start_main () from /lib/i686/libc.so.6
Comment 3 Tommi Tervo 2005-02-10 10:10:31 UTC
Dupe of this? http://bugs.kde.org/show_bug.cgi?id=86973
Comment 4 _ 2005-02-10 12:33:54 UTC
That one is a display: inline; on the body element crash.
Comment 5 Germain Garand 2005-03-16 22:51:08 UTC
CVS commit by ggarand: 

fix crashes for fancy body displays

BUG: 86973, 98975


  M +5 -1      html_baseimpl.cpp   1.204


--- kdelibs/khtml/html/html_baseimpl.cpp  #1.203:1.204
@@ -207,5 +207,9 @@ void HTMLBodyElementImpl::attach()
     style->ref();
     if (parentNode()->renderer() && style->display() != NONE) {
+        if (style->display() == BLOCK)
+            // only use the quirky class for block display
         m_render = new (getDocument()->renderArena()) RenderBody(this);
+        else
+            m_render = RenderObject::createObject(this, style);
         m_render->setStyle(style);
         parentNode()->renderer()->addChild(m_render, nextRenderer());
Comment 6 Germain Garand 2005-03-18 17:31:24 UTC
CVS commit by ggarand: 

backport crash fix
CCBUG: 86973, 98975


  M +5 -1      html_baseimpl.cpp   1.203.2.1


--- kdelibs/khtml/html/html_baseimpl.cpp  #1.203:1.203.2.1
@@ -207,5 +207,9 @@ void HTMLBodyElementImpl::attach()
     style->ref();
     if (parentNode()->renderer() && style->display() != NONE) {
+        if (style->display() == BLOCK)
+            // only use the quirky class for block display
         m_render = new (getDocument()->renderArena()) RenderBody(this);
+        else
+            m_render = RenderObject::createObject(this, style);
         m_render->setStyle(style);
         parentNode()->renderer()->addChild(m_render, nextRenderer());
Comment 7 Bram Schoenmakers 2007-03-14 22:25:17 UTC
*** Bug 141851 has been marked as a duplicate of this bug. ***
Comment 8 Bram Schoenmakers 2007-03-14 22:26:11 UTC
Reopening due to bug 141851, however, the bug is not that useful since it does not point to a particular site.
Comment 9 FiNeX 2008-04-20 19:41:01 UTC
konqueror 4 doesn't crash anymore :-)
Comment 10 FiNeX 2008-05-14 00:03:47 UTC
And even 3.5.9 doesn't crash.
I've just re-tested konqueror 4 using a more recent revision, and is still ok. Do you agree on closing this bug? It seems really fixed.