Version: latest git snapshot (using Devel) OS: Linux This meta bug should collect every rekonq crash that has in its backtrace the same KIO / threadweaver calls letting it crash. EG: QWaitCondition::wait at thread/qwaitcondition_unix.cpp:87 QWaitCondition::wait at thread/qwaitcondition_unix.cpp:159 QWaitCondition::wait at thread/qwaitcondition_unix.cpp:160 ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned at threadweaver/Weaver/WeaverImpl.cpp:365 ThreadWeaver::WorkingHardState::applyForWork at threadweaver/Weaver/WorkingHardState.cpp:71 ThreadWeaver::WorkingHardState::applyForWork at threadweaver/Weaver/WorkingHardState.cpp:74 ... Reproducible: Sometimes Steps to Reproduce: Follow description in the duplicate bugs.
*** Bug 246882 has been marked as a duplicate of this bug. ***
*** Bug 248187 has been marked as a duplicate of this bug. ***
*** Bug 248613 has been marked as a duplicate of this bug. ***
*** Bug 227947 has been marked as a duplicate of this bug. ***
I have not looked at all backtraces, but at least bug 227947 indicates a crash in WebCore::QNetworkReplyHandler::forwardData() (see backtrace Thread 1, where the crash happened). The mere fact that other threads are running or waiting for something does not make the main thread crash.
I think I have an url that triggers this bug reliably (ie. everytime): http://www.timeanddate.com/date/dateadded.html?d1=6&m1=09&y1=2010&type=sub&ay=&am=17&ad=&aw=
backtrace of rekonq opening the URL above Application: rekonq (rekonq), signal: Segmentation fault [Current thread is 1 (Thread 0x7f13f3026760 (LWP 21442))] Thread 13 (Thread 0x7f13e01d5710 (LWP 21443)): #0 0x00007f13ed51b40c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13f1b299f4 in WTF::TCMalloc_PageHeap::scavengerThread() () from /usr/lib/libQtWebKit.so.4 #2 0x00007f13f1b29a29 in WTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /usr/lib/libQtWebKit.so.4 #3 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #4 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #5 0x0000000000000000 in ?? () Thread 12 (Thread 0x7f13ddd71710 (LWP 21444)): #0 0x00007f13ed51b40c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13edaad6cb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0xa32b80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0xa32b80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f13efafa8c4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0xa45140, th=0xd686e0) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:365 #4 0x00007f13efafcf53 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9e73f0, th=0xd686e0) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:71 #5 0x00007f13efafbd3f in ThreadWeaver::ThreadRunHelper::run (this=0x7f13ddd70e30, parent=0xa45140, th=0xd686e0) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/Thread.cpp:87 #6 0x00007f13efafbdc8 in ThreadWeaver::Thread::run (this=0xd686e0) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/Thread.cpp:142 #7 0x00007f13edaace97 in QThreadPrivate::start (arg=0xd686e0) at thread/qthread_unix.cpp:274 #8 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #9 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #10 0x0000000000000000 in ?? () Thread 11 (Thread 0x7f13dd570710 (LWP 21445)): #0 0x00007f13ed51b40c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13edaad6cb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0xa32b80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0xa32b80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f13efafa8c4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0xa45140, th=0xd7b580) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:365 #4 0x00007f13efafcf53 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9e73f0, th=0xd7b580) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:71 #5 0x00007f13efafbd3f in ThreadWeaver::ThreadRunHelper::run (this=0x7f13dd56fe30, parent=0xa45140, th=0xd7b580) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/Thread.cpp:87 #6 0x00007f13efafbdc8 in ThreadWeaver::Thread::run (this=0xd7b580) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/Thread.cpp:142 #7 0x00007f13edaace97 in QThreadPrivate::start (arg=0xd7b580) at thread/qthread_unix.cpp:274 #8 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #9 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #10 0x0000000000000000 in ?? () Thread 10 (Thread 0x7f13dcd6f710 (LWP 21446)): #0 0x00007f13ed51b40c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13edaad6cb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0xa32b80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0xa32b80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f13efafa8c4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0xa45140, th=0xd9a400) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:365 #4 0x00007f13efafcf53 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9e73f0, th=0xd9a400) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:71 #5 0x00007f13efafbd3f in ThreadWeaver::ThreadRunHelper::run (this=0x7f13dcd6ee30, parent=0xa45140, th=0xd9a400) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/Thread.cpp:87 #6 0x00007f13efafbdc8 in ThreadWeaver::Thread::run (this=0xd9a400) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/Thread.cpp:142 #7 0x00007f13edaace97 in QThreadPrivate::start (arg=0xd9a400) at thread/qthread_unix.cpp:274 #8 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #9 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #10 0x0000000000000000 in ?? () Thread 9 (Thread 0x7f13d7fff710 (LWP 21447)): #0 0x00007f13ed51b40c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13edaad6cb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0xa32b80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0xa32b80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f13efafa8c4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0xa45140, th=0xd119e0) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:365 #4 0x00007f13efafcf53 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9e73f0, th=0xd119e0) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:71 #5 0x00007f13efafbd3f in ThreadWeaver::ThreadRunHelper::run (this=0x7f13d7ffee30, parent=0xa45140, th=0xd119e0) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/Thread.cpp:87 #6 0x00007f13efafbdc8 in ThreadWeaver::Thread::run (this=0xd119e0) at /mnt/data/kde-build/kdelibs/src/kdelibs/threadweaver/Weaver/Thread.cpp:142 #7 0x00007f13edaace97 in QThreadPrivate::start (arg=0xd119e0) at thread/qthread_unix.cpp:274 #8 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #9 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #10 0x0000000000000000 in ?? () Thread 8 (Thread 0x7f13d77fe710 (LWP 21448)): #0 0x00007f13ed51b779 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13edaad5e1 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x7f13d8048680, time=30000) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x7f13d8048680, time=30000) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f13edaa1d4f in QThreadPoolThread::run (this=0x7f13d803ae40) at concurrent/qthreadpool.cpp:140 #4 0x00007f13edaace97 in QThreadPrivate::start (arg=0x7f13d803ae40) at thread/qthread_unix.cpp:274 #5 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #6 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #7 0x0000000000000000 in ?? () Thread 7 (Thread 0x7f13d6dd8710 (LWP 21449)): #0 0x00007f13ed51b779 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13edaad5e1 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x7f13d8048680, time=30000) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x7f13d8048680, time=30000) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f13edaa1d4f in QThreadPoolThread::run (this=0x7f13d80488e0) at concurrent/qthreadpool.cpp:140 #4 0x00007f13edaace97 in QThreadPrivate::start (arg=0x7f13d80488e0) at thread/qthread_unix.cpp:274 #5 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #6 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #7 0x0000000000000000 in ?? () Thread 6 (Thread 0x7f13d123f710 (LWP 21455)): #0 0x00007f13ed51b779 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13edaad5e1 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1f001c0, time=30000) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1f001c0, time=30000) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f13edaa1d4f in QThreadPoolThread::run (this=0x1e87260) at concurrent/qthreadpool.cpp:140 #4 0x00007f13edaace97 in QThreadPrivate::start (arg=0x1e87260) at thread/qthread_unix.cpp:274 #5 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #6 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #7 0x0000000000000000 in ?? () Thread 5 (Thread 0x7f13d0a3e710 (LWP 21456)): #0 0x00007f13ed51b779 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13edaad5e1 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1f001c0, time=30000) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1f001c0, time=30000) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f13edaa1d4f in QThreadPoolThread::run (this=0x1eb2770) at concurrent/qthreadpool.cpp:140 #4 0x00007f13edaace97 in QThreadPrivate::start (arg=0x1eb2770) at thread/qthread_unix.cpp:274 #5 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #6 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #7 0x0000000000000000 in ?? () Thread 4 (Thread 0x7f13d003d710 (LWP 21462)): #0 0x00007f13ed51b779 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13edaad5e1 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x7f13d8048680, time=30000) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x7f13d8048680, time=30000) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f13edaa1d4f in QThreadPoolThread::run (this=0x206bd40) at concurrent/qthreadpool.cpp:140 #4 0x00007f13edaace97 in QThreadPrivate::start (arg=0x206bd40) at thread/qthread_unix.cpp:274 #5 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #6 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #7 0x0000000000000000 in ?? () Thread 3 (Thread 0x7f13cf83c710 (LWP 21472)): #0 0x00007f13ed51b779 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13edaad5e1 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1f001c0, time=30000) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1f001c0, time=30000) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f13edaa1d4f in QThreadPoolThread::run (this=0x20bf670) at concurrent/qthreadpool.cpp:140 #4 0x00007f13edaace97 in QThreadPrivate::start (arg=0x20bf670) at thread/qthread_unix.cpp:274 #5 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #6 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #7 0x0000000000000000 in ?? () Thread 2 (Thread 0x7f13cf03b710 (LWP 21473)): #0 0x00007f13ed51b779 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f13edaad5e1 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1f001c0, time=30000) at thread/qwaitcondition_unix.cpp:86 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1f001c0, time=30000) at thread/qwaitcondition_unix.cpp:160 #3 0x00007f13edaa1d4f in QThreadPoolThread::run (this=0x1d71a90) at concurrent/qthreadpool.cpp:140 #4 0x00007f13edaace97 in QThreadPrivate::start (arg=0x1d71a90) at thread/qthread_unix.cpp:274 #5 0x00007f13ed516cb0 in start_thread () from /lib/libpthread.so.0 #6 0x00007f13f28d47ad in clone () from /lib/libc.so.6 #7 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f13f3026760 (LWP 21442)): [KCrash Handler] #6 0x00007f13f1769ac0 in WebCore::String::isEmpty() const () from /usr/lib/libQtWebKit.so.4 #7 0x00007f13f1690d08 in WebCore::FrameLoader::setEncoding(WebCore::String const&, bool) () from /usr/lib/libQtWebKit.so.4 #8 0x00007f13f18a7a46 in WebCore::FrameLoaderClientQt::dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long, WebCore::ResourceError const&) () from /usr/lib/libQtWebKit.so.4 #9 0x00007f13f16c608d in WebCore::ResourceLoadNotifier::didFailToLoad(WebCore::ResourceLoader*, WebCore::ResourceError const&) () from /usr/lib/libQtWebKit.so.4 #10 0x00007f13f16c33ea in WebCore::ResourceLoader::didFail(WebCore::ResourceError const&) () from /usr/lib/libQtWebKit.so.4 #11 0x00007f13f16c6d39 in WebCore::SubresourceLoader::didFail(WebCore::ResourceError const&) () from /usr/lib/libQtWebKit.so.4 #12 0x00007f13f1884845 in WebCore::QNetworkReplyHandler::finish() () from /usr/lib/libQtWebKit.so.4 #13 0x00007f13f1884de4 in WebCore::QNetworkReplyHandler::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtWebKit.so.4 #14 0x00007f13edbba5af in QMetaObject::activate (sender=0x1de4210, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x0) at kernel/qobject.cpp:3272 #15 0x00007f13f2c0cdb0 in AdBlockNetworkReply::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkdeinit4_rekonq.so #16 0x00007f13edbb938a in QObject::event (this=0x1de4210, e=<value optimized out>) at kernel/qobject.cpp:1211 #17 0x00007f13ee09beb4 in QApplicationPrivate::notify_helper (this=0x8b0230, receiver=0x1de4210, e=0x1e5cc10) at kernel/qapplication.cpp:4399 #18 0x00007f13ee0a1041 in QApplication::notify (this=<value optimized out>, receiver=0x1de4210, e=0x1e5cc10) at kernel/qapplication.cpp:4280 #19 0x00007f13f0646776 in KApplication::notify (this=0x7fff781bbf00, receiver=0x1de4210, event=0x1e5cc10) at /mnt/data/kde-build/kdelibs/src/kdelibs/kdeui/kernel/kapplication.cpp:310 #20 0x00007f13edba2feb in QCoreApplication::notifyInternal (this=0x7fff781bbf00, receiver=0x1de4210, event=0x1e5cc10) at kernel/qcoreapplication.cpp:732 #21 0x00007f13edba6f2e in QCoreApplication::sendEvent (receiver=0x0, event_type=0, data=0x8645e0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #22 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8645e0) at kernel/qcoreapplication.cpp:1373 #23 0x00007f13edbd0ec3 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 #24 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:277 #25 0x00007f13e8b3eb33 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #26 0x00007f13e8b3f310 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0 #27 0x00007f13e8b3f5ad in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #28 0x00007f13edbd105f in QEventDispatcherGlib::processEvents (this=0x863cd0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415 #29 0x00007f13ee14adfe in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #30 0x00007f13edba1a92 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #31 0x00007f13edba1cd5 in QEventLoop::exec (this=0x7fff781bbe50, flags=...) at kernel/qeventloop.cpp:201 #32 0x00007f13edba7229 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009 #33 0x00007f13f2c2a349 in kdemain () from /usr/lib/libkdeinit4_rekonq.so #34 0x00007f13f2824c4d in __libc_start_main () from /lib/libc.so.6 #35 0x00000000004005c9 in _start ()
Created attachment 51801 [details] New crash information added by DrKonqi rekonq (0.6.0) on KDE Platform 4.5.1 (KDE 4.5.1) using Qt 4.7.0 - What I was doing when the application crashed: I visited www.peacekeeper.com Rekonq passed all benchmarks until the "DOM Operations" there it crashed. - Custom settings of the application: -- Backtrace (Reduced): #11 0x00007ff88e8c6524 in KIO::TransferJob::data(KIO::Job*, QByteArray const&) () from /usr/lib/libkio.so.5 #12 0x00007ff88e8c8cd0 in KIO::TransferJob::slotData(QByteArray const&) () from /usr/lib/libkio.so.5 #13 0x00007ff88e8cca56 in KIO::TransferJob::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkio.so.5 [...] #15 0x00007ff88e97a982 in KIO::SlaveInterface::data(QByteArray const&) () from /usr/lib/libkio.so.5 #16 0x00007ff88e97dc95 in KIO::SlaveInterface::dispatch(int, QByteArray const&) () from /usr/lib/libkio.so.5
I cannot reproduce this anymore with rekonq 0.6.1 and KDE 4.5.4 (tried both with the URL at #6 and with the peacekeeper benchmark). Also konqueror/webkit, which was previously affected by the same issue, seems now fixed. Great work!
I can confirm this :D no more crashes here. In any of the sites reported. Closing as upstream, because it seems someone of the kdelibs or the qtwebkit guys fixed it.