Version: (using KDE KDE 3.1.94) Installed from: Gentoo Packages Compiler: gcc version 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r3, propolice) OS: Linux Okay.. try going to this url with konqueror: http://kerneltrap.org/node/view/1630#4931 For me konqueror stops responding, I had tried it many times and rebooted my computer between attempts and always konqueror stops responding. With mozilla browser url is fine. Can you confirm this? Or is it only with my setup..
The page works fine for me. Cheers Jo
This is strange.. I can produce it always. I just changed to kernel 2.6.0 and didn't help, obvious of course.. but can I debug this without compiling?
I can reproduce this. HEAD 20031217, on kernel 2.6.0 (if that matters), compiled on gcc 3.3.2 Attaching to konq after it is stuck, I get: #0 khtml::RenderBlock::leftRelOffset(int, int, int*) const (this=0x84620e4, y=14, fixedOffset=0, heightRemaining=0xbfffd670) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:1442 #1 0x41ddac2f in khtml::RenderBlock::positionNewFloats() (this=0x84620e4) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:1374 #2 0x41dd57c0 in khtml::RenderBlock::layoutInlineChildren(bool) (this=0x84620e4, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/bidi.cpp:1221 #3 0x41dd82a7 in khtml::RenderBlock::layoutBlock(bool) (this=0x84620e4, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:498 #4 0x41dd8111 in khtml::RenderBlock::layout() (this=0x84620e4) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:418 #5 0x41dd9668 in khtml::RenderBlock::layoutBlockChildren(bool) (this=0x8453c30, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:822 #6 0x41dd8632 in khtml::RenderBlock::layoutBlock(bool) (this=0x8453c30, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:500 #7 0x41dd8111 in khtml::RenderBlock::layout() (this=0x8453c30) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:418 #8 0x41dd9668 in khtml::RenderBlock::layoutBlockChildren(bool) (this=0x8453bac, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:822 #9 0x41dd8632 in khtml::RenderBlock::layoutBlock(bool) (this=0x8453bac, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:500 #10 0x41dff27f in khtml::RenderTableCell::layout() (this=0x8453bac) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_table.cpp:1618 #11 0x41dfee3f in khtml::RenderTableRow::layout() (this=0x8453b88) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_table.cpp:1537 #12 0x41de9d78 in khtml::RenderContainer::layout() (this=0x8453840) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_container.cpp:347 #13 0x41dfa62c in khtml::RenderTable::layout() (this=0x84537a4) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_table.cpp:267 #14 0x41dd9668 in khtml::RenderBlock::layoutBlockChildren(bool) (this=0x8453720, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:822 #15 0x41dd8632 in khtml::RenderBlock::layoutBlock(bool) (this=0x8453720, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:500 #16 0x41dff27f in khtml::RenderTableCell::layout() (this=0x8453720) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_table.cpp:1618 #17 0x41dfee3f in khtml::RenderTableRow::layout() (this=0x84536fc) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_table.cpp:1537 #18 0x41de9d78 in khtml::RenderContainer::layout() (this=0x84536a0) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_container.cpp:347 #19 0x41dfa62c in khtml::RenderTable::layout() (this=0x8453604) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_table.cpp:267 #20 0x41dd9668 in khtml::RenderBlock::layoutBlockChildren(bool) (this=0x8453580, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:822 #21 0x41dd8632 in khtml::RenderBlock::layoutBlock(bool) (this=0x8453580, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:500 #22 0x41dff27f in khtml::RenderTableCell::layout() (this=0x8453580) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_table.cpp:1618 #23 0x41dfee3f in khtml::RenderTableRow::layout() (this=0x8423540) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_table.cpp:1537 #24 0x41de9d78 in khtml::RenderContainer::layout() (this=0x8420e4c) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_container.cpp:347 #25 0x41dfa62c in khtml::RenderTable::layout() (this=0x8420db0) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_table.cpp:267 #26 0x41dd9668 in khtml::RenderBlock::layoutBlockChildren(bool) (this=0x8420d40, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:822 #27 0x41dd8632 in khtml::RenderBlock::layoutBlock(bool) (this=0x8420d40, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:500 #28 0x41dd8111 in khtml::RenderBlock::layout() (this=0x8420d40) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:418 #29 0x41dd9668 in khtml::RenderBlock::layoutBlockChildren(bool) (this=0x8420ccc, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:822 #30 0x41dd8632 in khtml::RenderBlock::layoutBlock(bool) (this=0x8420ccc, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:500 #31 0x41dd8111 in khtml::RenderBlock::layout() (this=0x8420ccc) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:418 #32 0x41e1969e in khtml::RenderBody::layout() (this=0x8420ccc) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_body.cpp:92 #33 0x41dd9668 in khtml::RenderBlock::layoutBlockChildren(bool) (this=0x8420c14, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:822 #34 0x41dd8632 in khtml::RenderBlock::layoutBlock(bool) (this=0x8420c14, relayoutChildren=true) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:500 #35 0x41dd8111 in khtml::RenderBlock::layout() (this=0x8420c14) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:418 #36 0x41dd9668 in khtml::RenderBlock::layoutBlockChildren(bool) (this=0x8420b30, relayoutChildren=false) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:822 #37 0x41dd8632 in khtml::RenderBlock::layoutBlock(bool) (this=0x8420b30, relayoutChildren=false) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:500 #38 0x41dd8111 in khtml::RenderBlock::layout() (this=0x8420b30) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:418 #39 0x41e12b33 in khtml::RenderCanvas::layout() (this=0x8420b30) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_canvas.cpp:154 #40 0x41d360da in KHTMLView::layout() (this=0x83bfff8) at /home/thiago/programs/src/kde/kdelibs/khtml/khtmlview.cpp:579 #41 0x41d357e8 in KHTMLView::viewportResizeEvent(QResizeEvent*) (this=0x83bfff8, e=0xbfffe990) at /home/thiago/programs/src/kde/kdelibs/khtml/khtmlview.cpp:420 #42 0x40c25dec in QScrollView::updateScrollBars() () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #43 0x40e5035c in QScrollView::qt_invoke(int, QUObject*) () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #44 0x41d34663 in KHTMLView::qt_invoke(int, QUObject*) (this=0x83bfff8, _id=52, _o=0xbfffeb00) at khtmlview.moc:111 #45 0x40b0fe09 in QObject::activate_signal(QConnectionList*, QUObject*) () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #46 0x40b0fc05 in QObject::activate_signal(int) () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #47 0x40e3cb78 in QTimer::timeout() () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #48 0x40b30f9b in QTimer::event(QEvent*) () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #49 0x40ab26e9 in QApplication::internalNotify(QObject*, QEvent*) () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #50 0x40ab1d18 in QApplication::notify(QObject*, QEvent*) () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #51 0x4068702e in KApplication::notify(QObject*, QEvent*) (this=0xbffff3a0, receiver=0x84a1794, event=0xbfffee70) at /home/thiago/programs/src/kde/kdelibs/kdecore/kapplication.cpp:503 #52 0x40aa1514 in QEventLoop::activateTimers() () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #53 0x40a5cb33 in QEventLoop::processEvents(unsigned) () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #54 0x40ac64b3 in QEventLoop::enterLoop() () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #55 0x40ac6378 in QEventLoop::exec() () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #56 0x40ab2918 in QApplication::exec() () from /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3 #57 0x4165506e in kdemain (argc=4, argv=0x805f060) at /home/thiago/programs/src/kde/kdebase/konqueror/konq_main.cc:177 #58 0x4160f966 in kdeinitmain (argc=4, argv=0x805f060) at konqueror_dummy.cc:2 #59 0x0804cb1d in launch (argc=4, _name=0x8064db4 "konqueror", args=0x8064de8 "/home/thiago", cwd=0x8064de8 "/home/thiago", envc=44, envs=0x8065365 "", reset_env=true, tty=0x0, avoid_loops=false, startup_id_str=0x8065369 "prometheus.local.lan;1071850713;805969;2864") at /home/thiago/programs/src/kde/kdelibs/kinit/kinit.cpp:604 #60 0x0804df0e in handle_launcher_request (sock=4) at /home/thiago/programs/src/kde/kdelibs/kinit/kinit.cpp:1167 #61 0x0804e4c6 in handle_requests (waitForPid=0) at /home/thiago/programs/src/kde/kdelibs/kinit/kinit.cpp:1350 #62 0x0804f369 in main (argc=3, argv=0xbffffa74, envp=0xbffffa84) at /home/thiago/programs/src/kde/kdelibs/kinit/kinit.cpp:1797 #63 0x4142e654 in __libc_start_main () from /lib/libc.so.6 If I step for a while, it seems it never leaves frame #1. So it's looping infinitly in: #0 khtml::RenderBlock::positionNewFloats() (this=0x84620e4) at /home/thiago/programs/src/kde/kdelibs/khtml/rendering/render_block.cpp:1374 1371 while (rightRelOffset(y,ro, &heightRemainingRight)-fx < fwidth) 1372 { 1373 y += kMin( heightRemainingLeft, heightRemainingRight ); 1374 fx = leftRelOffset(y,lo, &heightRemainingLeft); 1375 }
I got CVS head 20031217, Kernel 2.6.0-test11 and GCC-3.3.1 and no problems with the page at all. Hope this helps in some way :-) Cheers Jo
*** Bug 66452 has been marked as a duplicate of this bug. ***
how I hate it when they kill my machine :)
Loop is due to left += style()->textIndent().minWidth(cw); in RenderBlock::leftRelOffset This is basically a constant part so it should be added to lo in RenderBlock::positionNewFloats() instead, otherwise fwidth = ro - lo; // Never look for more than what will be available. will not shrink the width far enough. Same for ro / rightRelOffset
Subject: kdelibs/khtml CVS commit by mueller: anybody bored enough to add a regression test? pretty Please!! CCMAIL: 70608-done@bugs.kde.org M +3 -0 ChangeLog 1.153 M +11 -11 rendering/render_block.cpp 1.18 M +2 -2 rendering/render_block.h 1.13 --- kdelibs/khtml/ChangeLog #1.152:1.153 @@ -1,4 +1,7 @@ 2004-01-12 Dirk Mueller <mueller@kde.org> + * rendering/render_block.cpp (left/rightRelOffset): recursion protection + (#70608). + * rendering/render_image.cpp (updateFromElement): add tracking of an oldimage, to avoid a "shoot out" effect on hovering expired images. --- kdelibs/khtml/rendering/render_block.cpp #1.17:1.18 @@ -1368,9 +1368,9 @@ void RenderBlock::positionNewFloats() int heightRemainingLeft = 1; int heightRemainingRight = 1; - int fx = leftRelOffset(y,lo, &heightRemainingLeft); - while (rightRelOffset(y,ro, &heightRemainingRight)-fx < fwidth) + int fx = leftRelOffset(y,lo, false, &heightRemainingLeft); + while (rightRelOffset(y,ro, false, &heightRemainingRight)-fx < fwidth) { y += kMin( heightRemainingLeft, heightRemainingRight ); - fx = leftRelOffset(y,lo, &heightRemainingLeft); + fx = leftRelOffset(y,lo, false, &heightRemainingLeft); } if (fx<0) fx=0; @@ -1385,9 +1385,9 @@ void RenderBlock::positionNewFloats() int heightRemainingLeft = 1; int heightRemainingRight = 1; - int fx = rightRelOffset(y,ro, &heightRemainingRight); - while (fx - leftRelOffset(y,lo, &heightRemainingLeft) < fwidth) + int fx = rightRelOffset(y,ro, false, &heightRemainingRight); + while (fx - leftRelOffset(y,lo, false, &heightRemainingLeft) < fwidth) { y += kMin(heightRemainingLeft, heightRemainingRight); - fx = rightRelOffset(y,ro, &heightRemainingRight); + fx = rightRelOffset(y,ro, false, &heightRemainingRight); } if (fx<f->width) fx=f->width; @@ -1439,5 +1439,5 @@ RenderBlock::leftOffset() const int -RenderBlock::leftRelOffset(int y, int fixedOffset, int *heightRemaining ) const +RenderBlock::leftRelOffset(int y, int fixedOffset, bool applyTextIndent, int *heightRemaining ) const { int left = fixedOffset; @@ -1458,7 +1458,7 @@ RenderBlock::leftRelOffset(int y, int fi } - if ( m_firstLine && style()->direction() == LTR ) { + if (applyTextIndent && m_firstLine && style()->direction() == LTR ) { int cw=0; - if (style()->textIndent().isPercent()) + if (style()->textIxndent().isPercent()) cw = containingBlock()->contentWidth(); left += style()->textIndent().minWidth(cw); @@ -1479,5 +1479,5 @@ RenderBlock::rightOffset() const int -RenderBlock::rightRelOffset(int y, int fixedOffset, int *heightRemaining ) const +RenderBlock::rightRelOffset(int y, int fixedOffset, bool applyTextIndent, int *heightRemaining ) const { int right = fixedOffset; @@ -1499,5 +1499,5 @@ RenderBlock::rightRelOffset(int y, int f } - if ( m_firstLine && style()->direction() == RTL ) { + if (applyTextIndent && m_firstLine && style()->direction() == RTL ) { int cw=0; if (style()->textIndent().isPercent()) --- kdelibs/khtml/rendering/render_block.h #1.12:1.13 @@ -145,9 +145,9 @@ public: int rightOffset() const; - int rightRelOffset(int y, int fixedOffset, int *heightRemaining = 0) const; + int rightRelOffset(int y, int fixedOffset, bool applyTextIndent=true, int *heightRemaining = 0) const; int rightOffset(int y) const { return rightRelOffset(y, rightOffset()); } int leftOffset() const; - int leftRelOffset(int y, int fixedOffset, int *heightRemaining = 0) const; + int leftRelOffset(int y, int fixedOffset, bool applyTextIndent=true, int *heightRemaining = 0) const; int leftOffset(int y) const { return leftRelOffset(y, leftOffset()); }
Created attachment 4139 [details] testcase for hanging khtml Dirk, I was bored enough to create a testcase :-) Note: the original Kerneltrap page hung only when the window was too narrow. This testcase hangs 100% of the time for me. I would like to thank KWin for its "easy killing of hanging apps" feature. :-)
Subject: Re: konqueror stops responding while viewing specific url Am Dienstag 13 Januar 2004 14:39 schrieb Andy Goossens: > ------- You are receiving this mail because: ------- > You are on the CC list for the bug, or are watching someone who is. > > http://bugs.kde.org/show_bug.cgi?id=70608 > > > > > ------- Additional Comments From andygoossens@pandora.be 2004-01-13 14:39 > ------- Created an attachment (id=4139) > --> (http://bugs.kde.org/attachment.cgi?id=4139&action=view) > testcase for hanging khtml > > Dirk, I was bored enough to create a testcase :-) You'll get a Riesen! :) Greetings, Stephan