Summary: | konqueror crash on http://allegro.pl/new_item_cat.php?new=1 | ||
---|---|---|---|
Product: | [Applications] konqueror | Reporter: | Bartosz Krzeszewski <bartek> |
Component: | general | Assignee: | Konqueror Developers <konq-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | andresbajotierra, frank78ac |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
backtrace
full backtrace site code |
Description
Bartosz Krzeszewski
2009-01-14 01:40:21 UTC
Thanks for the bug report! I can't confirm: Opening the provided code does not crash Konqueror (trunk rev. 911116) for me. By the way, it might be better to attach a test case of this size to the bug report, not paste it directly. Can you provide a backtrace? See http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports Created attachment 30272 [details]
backtrace
Recompiled konqueror with debug flag and got this backtrace
I'm pasting the backtrace here because that makes duplicate checks easier. It appears that some debugging info is still missing. Maybe you also have to recompile kdelibs with debugging enabled. Thread 3 (Thread 0x7f2ff3d0e950 (LWP 10682)): #0 0x00007f3003269c8d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f30034d6027 in QWaitCondition::wait () from /usr/lib64/qt4/libQtCore.so.4 #2 0x00007f30034cc5d0 in ?? () from /usr/lib64/qt4/libQtCore.so.4 #3 0x00007f30034d5132 in ?? () from /usr/lib64/qt4/libQtCore.so.4 #4 0x00007f3003265097 in start_thread () from /lib/libpthread.so.0 #5 0x00007f3000bec6fd in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () Thread 2 (Thread 0x7f2ff4715950 (LWP 10687)): #0 0x00007f3003269c8d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f30034d6027 in QWaitCondition::wait () from /usr/lib64/qt4/libQtCore.so.4 #2 0x00007f30034cc5d0 in ?? () from /usr/lib64/qt4/libQtCore.so.4 #3 0x00007f30034d5132 in ?? () from /usr/lib64/qt4/libQtCore.so.4 #4 0x00007f3003265097 in start_thread () from /lib/libpthread.so.0 #5 0x00007f3000bec6fd in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f3005f40760 (LWP 10673)): #0 0x00007f3000bbf421 in nanosleep () from /lib/libc.so.6 #1 0x00007f3000bbf244 in sleep () from /lib/libc.so.6 #2 0x00007f3004423a4b in ?? () from /usr/kde/live/lib64/libkdeui.so.5 #3 0x00007f30044241cd in KCrash::defaultCrashHandler () from /usr/kde/live/lib64/libkdeui.so.5 #4 <signal handler called> #5 0x00007f2ff859f70e in ?? () from /usr/kde/live/lib64/libkjs.so.4 #6 0x00007f2ff857fcd9 in KJS::FunctionImp::callAsFunction () from /usr/kde/live/lib64/libkjs.so.4 #7 0x00007f2ff8585769 in KJS::JSObject::call () from /usr/kde/live/lib64/libkjs.so.4 #8 0x00007f2ff859f1bc in ?? () from /usr/kde/live/lib64/libkjs.so.4 #9 0x00007f2ff85584be in ?? () from /usr/kde/live/lib64/libkjs.so.4 #10 0x00007f2ff8588170 in KJS::Interpreter::evaluate () from /usr/kde/live/lib64/libkjs.so.4 #11 0x00007f2ff8588293 in KJS::Interpreter::evaluate () from /usr/kde/live/lib64/libkjs.so.4 #12 0x00007f2ff8c178db in ?? () from /usr/kde/live/lib64/libkhtml.so.5 #13 0x00007f2ff89d62e8 in KHTMLPart::executeScript () from /usr/kde/live/lib64/libkhtml.so.5 #14 0x00007f2ff8a7fc51 in ?? () from /usr/kde/live/lib64/libkhtml.so.5 #15 0x00007f2ff8a8189f in ?? () from /usr/kde/live/lib64/libkhtml.so.5 #16 0x00007f2ff8a853ad in ?? () from /usr/kde/live/lib64/libkhtml.so.5 #17 0x00007f2ff8a87ff0 in ?? () from /usr/kde/live/lib64/libkhtml.so.5 #18 0x00007f2ff8a88e5d in ?? () from /usr/kde/live/lib64/libkhtml.so.5 #19 0x00007f2ff8a8ad01 in ?? () from /usr/kde/live/lib64/libkhtml.so.5 #20 0x00007f2ff8b9c117 in ?? () from /usr/kde/live/lib64/libkhtml.so.5 #21 0x00007f2ff8b9e97d in ?? () from /usr/kde/live/lib64/libkhtml.so.5 #22 0x00007f2ff8b9ce8d in ?? () from /usr/kde/live/lib64/libkhtml.so.5 #23 0x00007f2ff8ba2142 in ?? () from /usr/kde/live/lib64/libkhtml.so.5 #24 0x00007f30035c71ac in QMetaObject::activate () from /usr/lib64/qt4/libQtCore.so.4 #25 0x00007f3003bf3a32 in KJob::result () from /usr/kde/live/lib64/libkdecore.so.5 #26 0x00007f3003bf41bf in KJob::emitResult () from /usr/kde/live/lib64/libkdecore.so.5 #27 0x00007f3004ddbaea in KIO::SimpleJob::slotFinished () from /usr/kde/live/lib64/libkio.so.5 #28 0x00007f3004dded73 in KIO::TransferJob::slotFinished () from /usr/kde/live/lib64/libkio.so.5 #29 0x00007f3004ddb7aa in KIO::TransferJob::qt_metacall () from /usr/kde/live/lib64/libkio.so.5 #30 0x00007f30035c71ac in QMetaObject::activate () from /usr/lib64/qt4/libQtCore.so.4 #31 0x00007f3004e8870f in KIO::SlaveInterface::dispatch () from /usr/kde/live/lib64/libkio.so.5 #32 0x00007f3004e86731 in KIO::SlaveInterface::dispatch () from /usr/kde/live/lib64/libkio.so.5 #33 0x00007f3004e793de in KIO::Slave::gotInput () from /usr/kde/live/lib64/libkio.so.5 #34 0x00007f3004e796da in KIO::Slave::qt_metacall () from /usr/kde/live/lib64/libkio.so.5 #35 0x00007f30035c71ac in QMetaObject::activate () from /usr/lib64/qt4/libQtCore.so.4 #36 0x00007f3004daf287 in ?? () from /usr/kde/live/lib64/libkio.so.5 #37 0x00007f3004daf312 in KIO::Connection::qt_metacall () from /usr/kde/live/lib64/libkio.so.5 #38 0x00007f30035c2952 in QObject::event () from /usr/lib64/qt4/libQtCore.so.4 #39 0x00007f30028fb2ee in QApplicationPrivate::notify_helper () from /usr/lib64/qt4/libQtGui.so.4 #40 0x00007f30028ffe0e in QApplication::notify () from /usr/lib64/qt4/libQtGui.so.4 #41 0x00007f30043c48cb in KApplication::notify () from /usr/kde/live/lib64/libkdeui.so.5 #42 0x00007f30035b3218 in QCoreApplication::notifyInternal () from /usr/lib64/qt4/libQtCore.so.4 #43 0x00007f30035b406d in QCoreApplicationPrivate::sendPostedEvents () from /usr/lib64/qt4/libQtCore.so.4 #44 0x00007f30035dd4e3 in QEventDispatcherUNIX::processEvents () from /usr/lib64/qt4/libQtCore.so.4 #45 0x00007f300297ffc3 in ?? () from /usr/lib64/qt4/libQtGui.so.4 #46 0x00007f30035b2595 in QEventLoop::processEvents () from /usr/lib64/qt4/libQtCore.so.4 #47 0x00007f30035b26f8 in QEventLoop::exec () from /usr/lib64/qt4/libQtCore.so.4 #48 0x00007f30035b440e in QCoreApplication::exec () from /usr/lib64/qt4/libQtCore.so.4 #49 0x00007f3005b21396 in kdemain () from /usr/kde/live/lib64/libkdeinit4_konqueror.so #50 0x00007f3000b445d4 in __libc_start_main () from /lib/libc.so.6 #51 0x00000000004008f9 in _start () #0 0x00007f3000bbf421 in nanosleep () from /lib/libc.so.6 Created attachment 30405 [details]
full backtrace
recompiled all kde4 with debug flag
(In reply to comment #4) The backtrace is still lacking the necessary information. I think you have to pass -DCMAKE_BUILD_TYPE=debugfull to the cmake command when building all KDE packages. Another thing that might help would be the problematic HTML code. If you can store the page (e.g., with Firefox) and can crash Konqueror reproducibly when opening it, please attach it here. Thanks! Created attachment 30922 [details]
site code
Reproducible with that --- thanks!, on this machine w/o outdated build --- will try a newer version later. What may help too, though, is if you ran konq from a terminal and pasted the assertion failure message. ==13779== Invalid read of size 4 ==13779== at 0x7CCBB6C: KJS::Machine::runBlock(KJS::ExecState*, WTF::Vector<unsigned char, 0> const&, KJS::ExecState*) (in /opt/kde4/lib/libkjs.so.4.1.0) ==13779== by 0x7CAB127: KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) (in /opt/kde4/lib/libkjs.so.4.1.0) ==13779== by 0x7CB1409: KJS::JSObject::call(KJS::ExecState*, KJS::JSObject*, KJS::List const&) (in /opt/kde4/lib/libkjs.so.4.1.0) ==13779== by 0x7CCEFA2: KJS::Machine::runBlock(KJS::ExecState*, WTF::Vector<unsigned char, 0> const&, KJS::ExecState*) (in /opt/kde4/lib/libkjs.so.4.1.0) ==13779== by 0x7C82A83: KJS::FunctionBodyNode::execute(KJS::ExecState*) (in /opt/kde4/lib/libkjs.so.4.1.0) ==13779== by 0x7CB4506: KJS::Interpreter::evaluate(KJS::UString const&, int, KJS::UChar const*, int, KJS::JSValue*) (in /opt/kde4/lib/libkjs.so.4.1.0) ==13779== by 0x7CB4666: KJS::Interpreter::evaluate(KJS::UString const&, int, KJS::UString const&, KJS::JSValue*) (in /opt/kde4/lib/libkjs.so.4.1.0) ==13779== by 0x9AE3490: KJS::KJSProxyImpl::evaluate(QString, int, QString const&, DOM::Node const&, KJS::Completion*) (in /opt/kde4/lib/libkhtml.so.5.1.0) ==13779== by 0x98A37FC: KHTMLPart::executeScript(QString const&, int, DOM::Node const&, QString const&) (in /opt/kde4/lib/libkhtml.so.5.1.0) ==13779== by 0x994E2F5: khtml::HTMLTokenizer::scriptExecution(QString const&, QString const&, int) (in /opt/kde4/lib/libkhtml.so.5.1.0) ==13779== by 0x994FF97: khtml::HTMLTokenizer::scriptHandler() (in /opt/kde4/lib/libkhtml.so.5.1.0) ==13779== by 0x995393C: khtml::HTMLTokenizer::parseSpecial(khtml::TokenizerString&) (in /opt/kde4/lib/libkhtml.so.5.1.0) ==13779== Address 0x0 is not stack'd, malloc'd or (recently) free'd (Outdated 4.2 build triggers an assertion in a hashtable: konqueror: /home/maksim/KDE42/src/kdelibs/kjs/wtf/HashTable.h:441: void WTF::HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits>::checkKey(const T&) [with T = unsigned int, HashTranslator = WTF::IdentityHashTranslator<unsigned int, std::pair<unsigned int, KJS::JSValue*>, WTF::IntHash<unsigned int>>, Key = unsigned int, Value = std::pair<unsigned int, KJS::JSValue*>, Extractor = WTF::PairFirstExtractor<std::pair<unsigned int, KJS::JSValue*> >, HashFunctions = WTF::IntHash<unsigned int>, Traits = WTF::PairHashTraits<WTF::HashTraits<unsigned int>, WTF::HashTraits<KJS::JSValue*> >, KeyTraits = WTF::HashTraits<unsigned int>]: Assertion `!HashTranslator::equal(KeyTraits::emptyValue(), key)' failed. hmm, there way something in my TODO for sparse vectors that looked like this, I think. Testcase: A = []; A[20000] = 42; print(A[0]); Patch: --- array_instance.cpp (revision 892610) +++ array_instance.cpp (working copy) @@ -253,6 +257,13 @@ if (!map) { map = new SparseArrayValueMap; storage->m_sparseValueMap = map; + + // If we create a sparse map, we need to ensure that there is at least one spot + // in the vector map, however, since the sparse map can't put/get key 0. + // It's safe to do it here, since put(0) will always put it in the vector part, + // but we have to do it before a get(0) or it will crash + if (!m_vectorLength) + increaseVectorLength(1); } map->add(i, value); return; Now I just need to remember to commit it SVN commit 922902 by orlovich: Fix crash when we create a sparse array w/o a dense vector component, and then access [0]. BUG:180605 M +7 -0 array_instance.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=922902 SVN commit 922903 by orlovich: Merged revision 922902: Fix crash when we create a sparse array w/o a dense vector component, and then access [0]. BUG:180605 M +7 -0 array_instance.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=922903 SVN commit 922909 by orlovich: Regression test for #180605 CCBUG:180605 M +5 -0 Array.js WebSVN link: http://websvn.kde.org/?view=rev&revision=922909 Now page doesn't crash konqueror but there is only 2 items in first select field in "Kategoria", should be much more. When I clik on one of them then second field should be filled with items, instead of this konqueror crashes. @Bartosz Krzeszewski : if Konqueror is still crashing for you.. are you getting the same backtrace or a different one ? Thanks @Dario Andres: No, Konqueror is not crashing any more. But page is incomplete in Konqueror. Should I post another bug report? @Bartosz Krzeszewski: yes, please file a new bug report about the bad rendering of the page. As the originally reported crash is no longer there I'm closing this as FIXED Thanks |