| Summary: | javascript crash pressing the back button | ||
|---|---|---|---|
| Product: | [Applications] konqueror | Reporter: | Jaime Torres <jtamate> |
| Component: | general | Assignee: | Maksim Orlovich <maksim> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | crash | CC: | bluedzins, bugs.kde.org, jlp, maksim, mwoehlke.floss, raichoo, vonbirn |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Jaime Torres
2006-05-11 17:45:51 UTC
Using host libthread_db library "/lib/tls/libthread_db.so.1".
`shared object read from target memory' has disappeared; keeping its symbols.
[Thread debugging using libthread_db enabled]
[New Thread -1240824096 (LWP 10174)]
[KCrash handler]
#6 0xb57b3186 in khtml::TreeShared<DOM::NodeImpl>::ref (this=0x4)
at ../../../khtml/misc/shared.h:34
#7 0xb5813b23 in NodeListImpl (this=0xbf8699fc, n=0x0, type=14,
factory=0xb584bd80 <CollectionCache::make()>)
at ../../../khtml/xml/dom_nodeimpl.cpp:1677
#8 0xb584aac9 in HTMLCollectionImpl (this=0xbf8699fc, _base=0x0, _type=14)
at ../../../khtml/html/html_miscimpl.cpp:73
#9 0xb5939db4 in KJS::FrameArray::get (this=0x84b8c80, exec=0xbf869df8,
p=@0xbf869a88) at ../../../khtml/ecma/kjs_window.cpp:2222
#10 0xb55f1a4c in KJS::ObjectImp::getPropertyByIndex (this=0x84b8c80,
exec=0xbf869df8, propertyName=0) at ../../kjs/object.cpp:191
#11 0xb55f8441 in KJS::Reference::getValue (this=0xbf869b38, exec=0xbf869df8)
at ../../kjs/reference.cpp:142
#12 0xb55bbca6 in KJS::Node::evaluate (this=0x4, exec=0xbf869df8)
at ../../kjs/nodes.cpp:130
#13 0xb55c05bf in KJS::EqualNode::evaluate (this=0x865be60, exec=0xbf869df8)
at ../../kjs/nodes.cpp:1406
#14 0xb55bbce6 in KJS::Node::toBoolean (this=0x4, exec=0xbf869df8)
at ../../kjs/nodes.cpp:136
#15 0xb55c2d6f in KJS::IfNode::execute (this=0x83d1270, exec=0xbf869df8)
at ../../kjs/nodes.cpp:2016
#16 0xb55c7b88 in KJS::SourceElementsNode::execute (this=0x88f41d0,
exec=0xbf869df8) at ../../kjs/nodes.cpp:3091
#17 0xb55c295e in KJS::BlockNode::execute (this=0x8650a40, exec=0xbf869df8)
at ../../kjs/nodes.cpp:1942
#18 0xb55e1359 in KJS::InterpreterImp::evaluate (this=0x8907450,
code=@0xbf869ee0, thisV=@0xbf869ee4) at ../../kjs/internal.cpp:904
#19 0xb55f3039 in KJS::Interpreter::evaluate (this=0x4, code=@0xbf869ee0,
thisV=@0xbf869ee4) at ../../kjs/interpreter.cpp:166
#20 0xb594c921 in KJS::KJSProxyImpl::evaluate (this=0x8794558,
filename=@0xbf869fa4, baseLine=53, str=@0xbf86a164, n=@0xbf86a038,
completion=0xbf869f88) at ../../../khtml/ecma/kjs_proxy.cpp:164
#21 0xb57ceb51 in KHTMLPart::executeScript (this=0x85cc080,
filename=@0xbf86a040, baseLine=53, n=@0xbf86a038, script=@0xbf86a164)
at ../../khtml/khtml_part.cpp:1155
#22 0xb58328cd in khtml::HTMLTokenizer::scriptExecution (this=0x87b26c8,
str=@0xbf86a164, scriptURL=@0xb75ffe00, baseLine=52)
at ../../../khtml/html/htmltokenizer.cpp:448
#23 0xb5834fac in khtml::HTMLTokenizer::scriptHandler (this=0x87b26c8)
at ../../../khtml/html/htmltokenizer.cpp:415
#24 0xb58354ac in khtml::HTMLTokenizer::parseSpecial (this=0x87b26c8,
src=@0x87b2bc8) at ../../../khtml/html/htmltokenizer.cpp:332
#25 0xb583756d in khtml::HTMLTokenizer::parseTag (this=0x87b26c8,
src=@0x87b2bc8) at ../../../khtml/html/htmltokenizer.cpp:1212
#26 0xb58379e7 in khtml::HTMLTokenizer::write (this=0x87b26c8,
str=@0xbf86a428, appendData=true)
at ../../../khtml/html/htmltokenizer.cpp:1436
#27 0xb57c9d1b in KHTMLPart::write (this=0x85cc080,
str=0xbf86a684 "\r\n<!-- INCLUDE VIRTUAL=\"Interfaces/ifaceVentajasUtil.asp\" -->\r\n<!-- INCLUDE VIRTUAL=\"Interfaces/ifaceVentajasTipo1.asp\" -->\r\n<!-- INCLUDE VIRTUAL=\"Interfaces/ifaceVentajasTipo2.asp\" -->\r\n<!-- INCLUDE "..., len=1967) at ../../khtml/khtml_part.cpp:1985
#28 0xb57ba986 in KHTMLPart::slotRestoreData (this=0x85cc080,
data=@0xbf86c684) at ../../khtml/khtml_part.cpp:1688
#29 0xb57da07c in KHTMLPart::qt_invoke (this=0x85cc080, _id=18, _o=0xbf86a624)
at ./khtml_part.moc:503
#30 0xb71b79d0 in QObject::activate_signal ()
from /opt/kde3.5/lib/libqt-mt.so.3
#31 0xb57f7f0d in KHTMLPageCacheDelivery::emitData (this=0x88bfae0,
t0=@0xbf86c684) at ./khtml_pagecache.moc:177
#32 0xb57f846a in KHTMLPageCache::sendData (this=0x8375c90)
at ../../khtml/khtml_pagecache.cpp:264
#33 0xb57f8509 in KHTMLPageCache::qt_invoke (this=0x8375c90, _id=2,
_o=0xbf86c740) at ./khtml_pagecache.moc:82
#34 0xb71b79d0 in QObject::activate_signal ()
from /opt/kde3.5/lib/libqt-mt.so.3
#35 0xb74d9384 in QSignal::signal () from /opt/kde3.5/lib/libqt-mt.so.3
#36 0xb71d0240 in QSignal::activate () from /opt/kde3.5/lib/libqt-mt.so.3
#37 0xb71d724c in QSingleShotTimer::event ()
from /opt/kde3.5/lib/libqt-mt.so.3
#38 0xb7157d74 in QApplication::internalNotify ()
from /opt/kde3.5/lib/libqt-mt.so.3
#39 0xb7157f5d in QApplication::notify () from /opt/kde3.5/lib/libqt-mt.so.3
#40 0xb779d722 in KApplication::notify (this=0xbf86ce1c, receiver=0x82af910,
event=0xbf86cae0) at ../../kdecore/kapplication.cpp:550
#41 0xb714bbe7 in QEventLoop::activateTimers ()
from /opt/kde3.5/lib/libqt-mt.so.3
#42 0xb7106c01 in QEventLoop::processEvents ()
from /opt/kde3.5/lib/libqt-mt.so.3
#43 0xb716cf5c in QEventLoop::enterLoop () from /opt/kde3.5/lib/libqt-mt.so.3
#44 0xb716ceb4 in QEventLoop::exec () from /opt/kde3.5/lib/libqt-mt.so.3
#45 0xb7156fa0 in QApplication::exec () from /opt/kde3.5/lib/libqt-mt.so.3
#46 0xb5e0682c in kdemain () from /opt/kde3.5/lib/libkdeinit_konqueror.so
#47 0xb7662710 in kdeinitmain () from /opt/kde3.5/lib/kde3/konqueror.so
#48 0x0804f087 in launch (argc=4, _name=0x8077eac "konqueror",
args=0x8077ee4 "/home/Maksim", cwd=0x8077ee4 "/home/Maksim", envc=47,
envs=0x8078498 "", reset_env=true, tty=0x0, avoid_loops=false,
startup_id_str=0x807849c "nest;1147362760;726182;2913_TIME9270325")
at ../../kinit/kinit.cpp:639
#49 0x0804f791 in handle_launcher_request (sock=4)
at ../../kinit/kinit.cpp:1206
#50 0x0804fc9a in handle_requests (waitForPid=0) at ../../kinit/kinit.cpp:1397
#51 0x080504c5 in main (argc=3, argv=0xbf86d7a4, envp=0xbf86d7b4)
at ../../kinit/kinit.cpp:1863
OK, need the null pointer check there to avoid the crash in some other cases, but here it's clearly more of frame-restore-order mess: parent.frames[0] *** Bug 127422 has been marked as a duplicate of this bug. *** *** Bug 130268 has been marked as a duplicate of this bug. *** Not sure that all dupes have the same cause, but worth analyzing together.. This is either the document ref-counting thing, or frame restore order thing.. *** Bug 130850 has been marked as a duplicate of this bug. *** SVN commit 565178 by orlovich:
Put in a safe workaround for #127147, and likely #131199.
This isn't the correct fix, but it'll at least prevent crashing and log the actual bug;
the real fix is too complicated to do in time for 3.5.4.
CCBUG:127147
CCBUG:131199
M +17 -13 kjs_window.cpp
--- branches/KDE/3.5/kdelibs/khtml/ecma/kjs_window.cpp #565177:565178
@@ -2237,20 +2237,24 @@
// hence, it can find non-frame things (and even let them hide frame ones!)
// We don't quite do that, but do this as a fallback.
DOM::DocumentImpl* doc = static_cast<DOM::DocumentImpl*>(part->document().handle());
- DOM::HTMLCollectionImpl docuAll(doc, DOM::HTMLCollectionImpl::DOC_ALL);
- DOM::NodeImpl* node = docuAll.namedItem(p.string());
- if (node) {
- if (node->id() == ID_FRAME || node->id() == ID_IFRAME) {
- //Return the Window object.
- KHTMLPart* part = static_cast<DOM::HTMLFrameElementImpl*>(node)->contentPart();
- if (part)
- return Value(Window::retrieveWindow(part));
- else
- return Undefined();
- } else {
- //Just a regular node..
- return getDOMNode(exec, node);
+ if (doc) {
+ DOM::HTMLCollectionImpl docuAll(doc, DOM::HTMLCollectionImpl::DOC_ALL);
+ DOM::NodeImpl* node = docuAll.namedItem(p.string());
+ if (node) {
+ if (node->id() == ID_FRAME || node->id() == ID_IFRAME) {
+ //Return the Window object.
+ KHTMLPart* part = static_cast<DOM::HTMLFrameElementImpl*>(node)->contentPart();
+ if (part)
+ return Value(Window::retrieveWindow(part));
+ else
+ return Undefined();
+ } else {
+ //Just a regular node..
+ return getDOMNode(exec, node);
+ }
}
+ } else {
+ kdWarning(6070) << "Missing own document in FrameArray::get()" << endl;
}
return ObjectImp::get(exec, p);
this bug looks still present in (r803341) (the site reported in this bug is changed, but i reproduced the bug using duplicate bugs). I'm using Konqueror 4 (kdelibs and kdebase r805702) and I think I still have this bug. This is the new backtrace:
Program: Konqueror (konqueror), signal SIGSEGV
[Thread debugging using libthread_db enabled]
[New Thread 0x7faa096b3700 (LWP 8894)]
[KCrash handler]
#5 0x00007fa9faef0e22 in khtml::TreeShared<DOM::NodeImpl>::ref (this=0x0)
at /home/kde-devel/kde/src/KDE/kdelibs/khtml/misc/shared.h:61
#6 0x00007fa9faf84ebf in NodeListImpl (this=0x7fff116e5110, n=0x0, type=15,
factory=0x7fa9fafe69ec <CollectionCache::make()>)
at /home/kde-devel/kde/src/KDE/kdelibs/khtml/xml/dom_nodeimpl.cpp:1864
#7 0x00007fa9fafe5f20 in HTMLCollectionImpl (this=0x7fff116e5110, _base=0x0,
_type=15)
at /home/kde-devel/kde/src/KDE/kdelibs/khtml/html/html_miscimpl.cpp:70
#8 0x00007fa9fb15d63a in KJS::FrameArray::getOwnPropertySlot (
this=0x7fa9f6340800, exec=0x7fff116e58a0, propertyName=@0x7fff116e5200,
slot=@0x7fff116e52a0)
at /home/kde-devel/kde/src/KDE/kdelibs/khtml/ecma/kjs_window.cpp:2570
#9 0x00007fa9fa8d76b6 in KJS::JSObject::getOwnPropertySlot (
this=0x7fa9f6340800, exec=0x7fff116e58a0, propertyName=0,
slot=@0x7fff116e52a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/object.cpp:199
#10 0x00007fa9fa8d7972 in KJS::JSObject::getPropertySlot (
this=0x7fa9f6340800, exec=0x7fff116e58a0, propertyName=0,
slot=@0x7fff116e52a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/object.cpp:184
#11 0x00007fa9fa8d7a05 in KJS::JSObject::get (this=0x7fa9f6340800,
exec=0x7fff116e58a0, propertyName=0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/object.cpp:173
#12 0x00007fa9fa8842c0 in KJS::BracketAccessorNode::evaluate (this=0x2ae2220,
exec=0x7fff116e58a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/nodes.cpp:813
#13 0x00007fa9fa883f9a in KJS::BinaryLogicalNode::evaluate (this=0x2ae2250,
exec=0x7fff116e58a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/nodes.cpp:1634
#14 0x00007fa9fa883c7f in KJS::IfNode::execute (this=0x24eee90,
exec=0x7fff116e58a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/nodes.cpp:2187
#15 0x00007fa9fa87c8be in KJS::SourceElementsNode::execute (this=0x24eeed0,
exec=0x7fff116e58a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/nodes.cpp:2973
#16 0x00007fa9fa87b695 in KJS::BlockNode::execute (this=0x24eef00,
exec=0x7fff116e58a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/nodes.cpp:2145
#17 0x00007fa9fa87c076 in KJS::TryNode::execute (this=0x26bec30,
exec=0x7fff116e58a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/nodes.cpp:2725
#18 0x00007fa9fa883d48 in KJS::IfNode::execute (this=0x26bec70,
exec=0x7fff116e58a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/nodes.cpp:2193
#19 0x00007fa9fa883327 in KJS::ForNode::execute (this=0x26becb0,
exec=0x7fff116e58a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/nodes.cpp:2322
#20 0x00007fa9fa87c9bd in KJS::SourceElementsNode::execute (this=0x177d960,
exec=0x7fff116e58a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/nodes.cpp:2979
#21 0x00007fa9fa87b695 in KJS::BlockNode::execute (this=0x26bed20,
exec=0x7fff116e58a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/nodes.cpp:2145
#22 0x00007fa9fa8ce8ea in KJS::DeclaredFunctionImp::execute (
this=0x7fa9f6327780, exec=0x7fff116e58a0)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/function.cpp:373
#23 0x00007fa9fa8cffa0 in KJS::FunctionImp::callAsFunction (
this=0x7fa9f6327780, exec=0x2c71238, thisObj=0x7fa9f6730080,
args=@0x24b8898)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/function.cpp:161
#24 0x00007fa9fa8d853f in KJS::JSObject::call (this=0x7fa9f6327780,
exec=0x2c71238, thisObj=0x7fa9f6730080, args=@0x24b8898)
at /home/kde-devel/kde/src/KDE/kdelibs/kjs/object.cpp:99
#25 0x00007fa9fb1591b6 in KJS::ScheduledAction::execute (this=0x24b8890,
window=0x7fa9f6730080)
at /home/kde-devel/kde/src/KDE/kdelibs/khtml/ecma/kjs_window.cpp:2179
#26 0x00007fa9fb15947d in KJS::WindowQObject::timerEvent (this=0x1974ee0)
at /home/kde-devel/kde/src/KDE/kdelibs/khtml/ecma/kjs_window.cpp:2355
#27 0x00007faa04e0ce4e in QObject::event (this=0x1974ee0, e=0x7fff116e6370)
at kernel/qobject.cpp:1105
#28 0x00007faa03ba9e47 in QApplicationPrivate::notify_helper (this=0x8d83f0,
receiver=0x1974ee0, e=0x7fff116e6370) at kernel/qapplication.cpp:3772
#29 0x00007faa03baa169 in QApplication::notify (this=0x7fff116e67c0,
receiver=0x1974ee0, e=0x7fff116e6370) at kernel/qapplication.cpp:3366
#30 0x00007faa07e272c6 in KApplication::notify (this=0x7fff116e67c0,
receiver=0x1974ee0, event=0x7fff116e6370)
at /home/kde-devel/kde/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:311
#31 0x00007faa04dfa256 in QCoreApplication::notifyInternal (
this=0x7fff116e67c0, receiver=0x1974ee0, event=0x7fff116e6370)
at kernel/qcoreapplication.cpp:583
#32 0x00007faa04dfdc81 in QCoreApplication::sendEvent (receiver=0x1974ee0,
event=0x7fff116e6370)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#33 0x00007faa04e2ba31 in QTimerInfoList::activateTimers (this=0x8db930)
at kernel/qeventdispatcher_unix.cpp:563
#34 0x00007faa04e29155 in timerSourceDispatch (source=0x8db8d0)
at kernel/qeventdispatcher_glib.cpp:166
#35 0x00007faa012d4e31 in g_main_context_dispatch ()
from /usr/lib/libglib-2.0.so.0
#36 0x00007faa012d80c6 in ?? () from /usr/lib/libglib-2.0.so.0
#37 0x00007faa012d855f in g_main_context_iteration ()
from /usr/lib/libglib-2.0.so.0
#38 0x00007faa04e283bc in QEventDispatcherGlib::processEvents (this=0x8d3470,
flags=@0x7fff116e65b0) at kernel/qeventdispatcher_glib.cpp:325
#39 0x00007faa03c4ac0b in QGuiEventDispatcherGlib::processEvents (
this=0x8d3470, flags=@0x7fff116e6610)
at kernel/qguieventdispatcher_glib.cpp:204
#40 0x00007faa04df7384 in QEventLoop::processEvents (this=0x7fff116e66c0,
flags=@0x7fff116e6670) at kernel/qeventloop.cpp:149
#41 0x00007faa04df7580 in QEventLoop::exec (this=0x7fff116e66c0,
flags=@0x7fff116e66d0) at kernel/qeventloop.cpp:196
#42 0x00007faa04dfaaa0 in QCoreApplication::exec ()
at kernel/qcoreapplication.cpp:845
#43 0x00007faa03ba9ba8 in QApplication::exec ()
at kernel/qapplication.cpp:3304
#44 0x00007faa0928ff9f in kdemain (argc=2, argv=0x7fff116e7358)
at /home/kde-devel/kde/src/KDE/kdebase/apps/konqueror/src/konqmain.cpp:232
#45 0x00000000004009b3 in main (argc=2, argv=0x7fff116e7358)
at /home/kde-devel/kde/build/KDE/kdebase/apps/konqueror/src/konqueror_dummy.cpp:3
#0 0x00007faa0250ec21 in nanosleep () from /lib64/libc.so.6
*** Bug 164348 has been marked as a duplicate of this bug. *** Careful with this one triagers, if you look at the last dup, you'll see that only 1/3 people saw the bug. Its timing dependant, and apparently not an easy fix. *** Bug 166056 has been marked as a duplicate of this bug. *** On second thought, let's consolidate this one in as well... There are other's for frame-back issues, too. *** This bug has been marked as a duplicate of 164348 *** |