Bug 128902

Summary: Crash on scripted reload
Product: [Applications] konqueror Reporter: Tais P. Hansen <tais.hansen>
Component: khtml partAssignee: Konqueror Developers <konq-bugs>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Tais P. Hansen 2006-06-09 17:09:19 UTC
Version:            (using KDE KDE 3.5.3)
Installed from:    Compiled From Sources
Compiler:          gcc (GCC) 3.3.6 
OS:                Linux

Konqueror crashes when cams on the page below updates (default 15 seconds).

http://www.trafikken.dk/wimpdoclet.asp?page=document&objno=87431

Backtrace:

Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1240200960 (LWP 2770)]
[KCrash handler]
#5  0xb5a12e7c in KHTMLPart::scheduleRedirection ()
   from /opt/kde/lib/libkhtml.so.4
#6  0xb5bbc73d in KJS::LocationFunc::tryCall ()
   from /opt/kde/lib/libkhtml.so.4
#7  0xb5b6da3e in KJS::DOMFunction::call () from /opt/kde/lib/libkhtml.so.4
#8  0xb590ea65 in KJS::Object::call () from /opt/kde/lib/libkjs.so.1
#9  0xb58d6e0a in KJS::FunctionCallNode::evaluate ()
   from /opt/kde/lib/libkjs.so.1
#10 0xb58db8ea in KJS::ExprStatementNode::execute ()
   from /opt/kde/lib/libkjs.so.1
#11 0xb58e24d4 in KJS::SourceElementsNode::execute ()
   from /opt/kde/lib/libkjs.so.1
#12 0xb58db6ff in KJS::BlockNode::execute () from /opt/kde/lib/libkjs.so.1
#13 0xb58dbc8f in KJS::IfNode::execute () from /opt/kde/lib/libkjs.so.1
#14 0xb58e254c in KJS::SourceElementsNode::execute ()
   from /opt/kde/lib/libkjs.so.1
#15 0xb58db6ff in KJS::BlockNode::execute () from /opt/kde/lib/libkjs.so.1
#16 0xb5909a0c in KJS::DeclaredFunctionImp::execute ()
   from /opt/kde/lib/libkjs.so.1
#17 0xb5908df0 in KJS::FunctionImp::call () from /opt/kde/lib/libkjs.so.1
#18 0xb590ea65 in KJS::Object::call () from /opt/kde/lib/libkjs.so.1
#19 0xb58d6e0a in KJS::FunctionCallNode::evaluate ()
   from /opt/kde/lib/libkjs.so.1
#20 0xb58db8ea in KJS::ExprStatementNode::execute ()
   from /opt/kde/lib/libkjs.so.1
#21 0xb58e24d4 in KJS::SourceElementsNode::execute ()
   from /opt/kde/lib/libkjs.so.1
#22 0xb58db6ff in KJS::BlockNode::execute () from /opt/kde/lib/libkjs.so.1
#23 0xb58fc927 in KJS::InterpreterImp::evaluate ()
   from /opt/kde/lib/libkjs.so.1
#24 0xb5910aba in KJS::Interpreter::evaluate () from /opt/kde/lib/libkjs.so.1
#25 0xb5bc618f in KJS::KJSProxyImpl::evaluate ()
   from /opt/kde/lib/libkhtml.so.4
#26 0xb5a0d2fe in KHTMLPart::executeScript () from /opt/kde/lib/libkhtml.so.4
#27 0xb5bb8849 in KJS::ScheduledAction::execute ()
   from /opt/kde/lib/libkhtml.so.4
#28 0xb5bb972e in KJS::WindowQObject::timerEvent ()
   from /opt/kde/lib/libkhtml.so.4
#29 0xb7107a13 in QObject::event () from /usr/lib/qt/lib/libqt-mt.so.3
#30 0xb70ad95f in QApplication::internalNotify ()
   from /usr/lib/qt/lib/libqt-mt.so.3
#31 0xb70acf5e in QApplication::notify () from /usr/lib/qt/lib/libqt-mt.so.3
#32 0xb76eb6b5 in KApplication::notify () from /opt/kde/lib/libkdecore.so.4
#33 0xb709d195 in QEventLoop::activateTimers ()
   from /usr/lib/qt/lib/libqt-mt.so.3
#34 0xb70578fb in QEventLoop::processEvents ()
   from /usr/lib/qt/lib/libqt-mt.so.3
#35 0xb70bfd18 in QEventLoop::enterLoop () from /usr/lib/qt/lib/libqt-mt.so.3
#36 0xb70bfbc8 in QEventLoop::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#37 0xb70adbb1 in QApplication::exec () from /usr/lib/qt/lib/libqt-mt.so.3
#38 0xb5f6a00c in kdemain () from /opt/kde/lib/libkdeinit_konqueror.so
#39 0xb75f87b6 in kdeinitmain () from /opt/kde/lib/kde3/konqueror.so
#40 0x0804cea3 in launch ()
#41 0x0804e55b in handle_launcher_request ()
#42 0x0804ea6d in handle_requests ()
#43 0x0804fbdd in main ()
Comment 1 Tommi Tervo 2006-06-09 17:45:33 UTC
#6  0x41e006b3 in KHTMLPart::scheduleRedirection (this=0x0, delay=-1, 
    url=@0xbfc5f5f8, doLockHistory=true) at khtml_part.cpp:2373
#7  0x41fee136 in KJS::LocationFunc::tryCall (this=0x83ecf90, exec=0xbfc5fb0c, 
    thisObj=@0xbfc5f7e8, args=@0xbfc5f7f8) at kjs_window.cpp:2468
#8  0x41f9aa72 in KJS::DOMFunction::call (this=0x83ecf90, exec=0xbfc5fb0c, 
    thisObj=@0xbfc5f7e8, args=@0xbfc5f7f8) at kjs_binding.cpp:114
#9  0x4219d147 in KJS::Object::call (this=0xbfc5f7f0, exec=0xbfc5fb0c, 
    thisObj=@0xbfc5f7e8, args=@0xbfc5f7f8) at object.cpp:73
#10 0x4215bee4 in KJS::FunctionCallNode::evaluate (this=0x8460b20, 
    exec=0xbfc5fb0c) at nodes.cpp:870
#11 0x42161b4d in KJS::ExprStatementNode::execute (this=0x8482340, 
    exec=0xbfc5fb0c) at nodes.cpp:1980
#12 0x42168619 in KJS::SourceElementsNode::execute (this=0x829e358, 
    exec=0xbfc5fb0c) at nodes.cpp:3091
Comment 2 Andreas Kling 2006-06-10 09:50:33 UTC
SVN commit 549888 by kling:

Handle location.reload() on non-KHTMLPart parts (and don't crash while doing it)

BUG: 128902


 M  +3 -1      kjs_window.cpp  


--- branches/KDE/3.5/kdelibs/khtml/ecma/kjs_window.cpp #549887:549888
@@ -2464,8 +2464,10 @@
     break;
   case Location::Reload: {
     KHTMLPart *khtmlpart = ::qt_cast<KHTMLPart *>(part);
-    if (part)
+    if (khtmlpart)
       khtmlpart->scheduleRedirection(-1, part->url().url(), true/*lock history*/);
+    else
+      part->openURL(part->url());
     break;
   }
   case Location::ToString: