Bug 177091 - recursion in layoutBlock + checkScrollbarsAfterLayout
Summary: recursion in layoutBlock + checkScrollbarsAfterLayout
Status: RESOLVED FIXED
Alias: None
Product: konqueror
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-06 20:36 UTC by Thomas Fjellstrom
Modified: 2009-06-08 15:49 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Saved compresse (tar.bz2) testcase (www.newsweek.pl) (520.83 KB, application/octet-stream)
2009-04-07 14:29 UTC, Dario Andres
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Fjellstrom 2008-12-06 20:36:54 UTC
Version:            (using Devel)
Compiler:          debian gcc 4.3.2 
OS:                Linux
Installed from:    Compiled sources

I initially had a few windows open, and one window had too many tabs open so I went to close them, getting to one that was empty (no page, no url, no about:blank) konqueror froze for a few seconds then crashed, restarting and trying to close said tab again crashed konqueror, never did get a backtrace for those, but now loading that last session causes a crash just after all the pages load:

#
Program received signal SIGSEGV, Segmentation fault.
#
[Switching to Thread 0xb61b76c0 (LWP 30619)]        
#
QWidget::event (this=0xd64de00, event=0xbf759400) at /home/kde4-devel/kdesvn/qt-copy/src/gui/kernel/qwidget.cpp:7108
#
7108    bool QWidget::event(QEvent *event)                                                                          
#
(gdb) bt                                                                                                            
#
#0  QWidget::event (this=0xd64de00, event=0xbf759400) at /home/kde4-devel/kdesvn/qt-copy/src/gui/kernel/qwidget.cpp:7108
#
#1  0xb6e4f264 in QAbstractSlider::event (this=0xd64de00, e=0xbf759400) at /home/kde4-devel/kdesvn/qt-copy/src/gui/widgets/qabstractslider.cpp:843
#
#2  0xb6ee62ca in QScrollBar::event (this=0xd64de00, event=0xbf759400) at /home/kde4-devel/kdesvn/qt-copy/src/gui/widgets/qscrollbar.cpp:520      
#
#3  0xb6b5733c in QApplicationPrivate::notify_helper (this=0x9a14708, receiver=0xd64de00, e=0xbf759400) at /home/kde4-devel/kdesvn/qt-copy/src/gui/kernel/qapplication.cpp:3803
#
#4  0xb6b5e4ea in QApplication::notify (this=0xbff5690c, receiver=0xd64de00, e=0xbf759400) at /home/kde4-devel/kdesvn/qt-copy/src/gui/kernel/qapplication.cpp:3768            
#
#5  0xb781a9bd in KApplication::notify (this=0xbff5690c, receiver=0xd64de00, event=0xbf759400) at /home/kde4-devel/kdesvn/kdelibs/kdeui/kernel/kapplication.cpp:307            
#
#6  0xb72d7671 in QCoreApplication::notifyInternal (this=0xbff5690c, receiver=0xd64de00, event=0xbf759400) at /home/kde4-devel/kdesvn/qt-copy/src/corelib/kernel/qcoreapplication.cpp:583
#
#7  0xb6ba38c0 in QWidget::unsetCursor (this=0xd64de00) at ../../include/QtCore/../../../../kdesvn/qt-copy/src/corelib/kernel/qcoreapplication.h:209                                    
#
#8  0xb4167591 in KHTMLView::widgetEvent (this=0xa277200, e=0xbf75982c) at /home/kde4-devel/kdesvn/kdelibs/khtml/khtmlview.cpp:2391                                                      
#
#9  0xb416786d in KHTMLView::eventFilter (this=0xa277200, o=0xa277df0, e=0xbf75982c) at /home/kde4-devel/kdesvn/kdelibs/khtml/khtmlview.cpp:2244                                        
#
#10 0xb72d687a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x9a14708, receiver=0xa277df0, event=0xbf75982c)                                                          
#
    at /home/kde4-devel/kdesvn/qt-copy/src/corelib/kernel/qcoreapplication.cpp:694                                                                                                      
#
#11 0xb6b5731a in QApplicationPrivate::notify_helper (this=0x9a14708, receiver=0xa277df0, e=0xbf75982c) at /home/kde4-devel/kdesvn/qt-copy/src/gui/kernel/qapplication.cpp:3799          
#
#12 0xb6b5e4ea in QApplication::notify (this=0xbff5690c, receiver=0xa277df0, e=0xbf75982c) at /home/kde4-devel/kdesvn/qt-copy/src/gui/kernel/qapplication.cpp:3768                      
#
#13 0xb781a9bd in KApplication::notify (this=0xbff5690c, receiver=0xa277df0, event=0xbf75982c) at /home/kde4-devel/kdesvn/kdelibs/kdeui/kernel/kapplication.cpp:307                      
#
#14 0xb72d7671 in QCoreApplication::notifyInternal (this=0xbff5690c, receiver=0xa277df0, event=0xbf75982c) at /home/kde4-devel/kdesvn/qt-copy/src/corelib/kernel/qcoreapplication.cpp:583
#
#15 0xb6b9ce15 in QWidget::ensurePolished (this=0xd64de00) at ../../include/QtCore/../../../../kdesvn/qt-copy/src/corelib/kernel/qcoreapplication.h:209                                  
#
#16 0xb6baad25 in QWidget::setVisible (this=0xd64de00, visible=true) at /home/kde4-devel/kdesvn/qt-copy/src/gui/kernel/qwidget.cpp:6534                                                  
#
#17 0xb42f0957 in khtml::RenderLayer::showScrollbar (this=0xd4e3d60, o=Qt::Vertical, show=true) at /usr/local/kde4/include/QtGui/qwidget.h:464                                          
#
#18 0xb42f0d98 in khtml::RenderLayer::checkScrollbarsAfterLayout (this=0xd4e3d60) at /home/kde4-devel/kdesvn/kdelibs/khtml/rendering/render_layer.cpp:909                                
#
#19 0xb42c0731 in khtml::RenderBlock::layoutBlock (this=0xd4e3cdc, relayoutChildren=<value optimized out>) at /home/kde4-devel/kdesvn/kdelibs/khtml/rendering/render_block.cpp:863      
#
#20 0xb42f0cfb in khtml::RenderLayer::checkScrollbarsAfterLayout (this=0xd4e3d60) at /home/kde4-devel/kdesvn/kdelibs/khtml/rendering/render_layer.cpp:916                                
#
#21 0xb42c0731 in khtml::RenderBlock::layoutBlock (this=0xd4e3cdc, relayoutChildren=<value optimized out>) at /home/kde4-devel/kdesvn/kdelibs/khtml/rendering/render_block.cpp:863      
#
#22 0xb42f0cfb in khtml::RenderLayer::checkScrollbarsAfterLayout (this=0xd4e3d60) at /home/kde4-devel/kdesvn/kdelibs/khtml/rendering/render_layer.cpp:916                                
#
#23 0xb42c0731 in khtml::RenderBlock::layoutBlock (this=0xd4e3cdc, relayoutChildren=<value optimized out>) at /home/kde4-devel/kdesvn/kdelibs/khtml/rendering/render_block.cpp:863      
#
#24 0xb42f0cfb in khtml::RenderLayer::checkScrollbarsAfterLayout (this=0xd4e3d60) at /home/kde4-devel/kdesvn/kdelibs/khtml/rendering/render_layer.cpp:916                                
#
#25 0xb42c0731 in khtml::RenderBlock::layoutBlock (this=0xd4e3cdc, relayoutChildren=<value optimized out>) at /home/kde4-devel/kdesvn/kdelibs/khtml/rendering/render_block.cpp:863      
#
#26 0xb42f0cfb in khtml::RenderLayer::checkScrollbarsAfterLayout (this=0xd4e3d60) at /home/kde4-devel/kdesvn/kdelibs/khtml/rendering/render_layer.cpp:916                                
#
#27 0xb42c0731 in khtml::RenderBlock::layoutBlock (this=0xd4e3cdc, relayoutChildren=<value optimized out>) at /home/kde4-devel/kdesvn/kdelibs/khtml/rendering/render_block.cpp:863 

The last two calls repeat endlessly.
Comment 1 Dario Andres 2009-04-07 14:10:27 UTC
Here using:

Qt: 4.5.0 + qt-copy-patches-936035
KDE: 4.2.68 (KDE 4.2.68 (KDE 4.3 >= 20090327))
kdelibs svn rev. 949645 / kdebase svn rev. 949645
on ArchLinux i686 - Kernel 2.6.28.8

I can reproduce this crash when loading the test site: "www.newsweek.pl"
Comment 2 Dario Andres 2009-04-07 14:29:40 UTC
Created attachment 32679 [details]
Saved compresse (tar.bz2) testcase (www.newsweek.pl)
Comment 3 Germain Garand 2009-06-08 15:49:46 UTC
SVN commit 978908 by ggarand:

Prevent scrollbars of CSS containers from oscillating.
One relayout shall be enough.

BUG: 177091


 M  +6 -1      render_layer.cpp  
 M  +1 -0      render_layer.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=978908