Bug 313463

Summary: Konqueror crashes on certain link
Product: [Applications] konqueror Reporter: Russ Fineman <upscope>
Component: generalAssignee: Konqueror Developers <konq-bugs>
Status: RESOLVED UPSTREAM    
Severity: crash CC: adawit, kde
Priority: NOR    
Version: 4.9.5   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Russ Fineman 2013-01-18 18:47:27 UTC
Application: konqueror (4.9.5 "release 3")
KDE Platform Version: 4.9.5 "release 3"
Qt Version: 4.8.4
Operating System: Linux 3.4.11-2.16-desktop x86_64
Distribution: "openSUSE 12.2 (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:

Clicked on link: https://login.postini.com/exec/login

openSUSE 12.2 [3.4.11-2.16-desktop (64-bit)]
KDE 4.9.5 release 3
Konqueror 4.9.5 release 3

Chromium [Version 26.0.1383.0 (176610)], FireFox [18.0], SeaMonkey [2.15] and Opera  
[Version 12-12 build 1707] do not crash.

Tested again, crashed again.

-- Backtrace:
Application: Konqueror (kdeinit4), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7ffbf8c67780 (LWP 4546))]

Thread 8 (Thread 0x7ffbdd391700 (LWP 4758)):
#0  0x00007ffbf6284cad in nanosleep () from /lib64/libc.so.6
#1  0x00007ffbf6284b51 in sleep () from /lib64/libc.so.6
#2  0x00007ffbed946e92 in WTF::TCMalloc_PageHeap::scavengerThread (this=0x7ffbee34b2a0 <WTF::pageheap_memory>) at ../../../Source/JavaScriptCore/wtf/FastMalloc.cpp:2499
#3  0x00007ffbed946f19 in WTF::TCMalloc_PageHeap::runScavengerThread (context=<optimized out>) at ../../../Source/JavaScriptCore/wtf/FastMalloc.cpp:1618
#4  0x00007ffbe8992764 in ?? () from /usr/lib64/libGL.so.1
#5  0x00007ffbf753ae0e in start_thread () from /lib64/libpthread.so.0
#6  0x00007ffbf62b32cd in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7ffbdca90700 (LWP 4759)):
#0  0x00007ffbf62ab14f in poll () from /lib64/libc.so.6
#1  0x00007ffbf2ff3684 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007ffbf2ff37a4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007ffbf78fb136 in QEventDispatcherGlib::processEvents (this=0x7ffbd80008f0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007ffbf78cb94f in QEventLoop::processEvents (this=this@entry=0x7ffbdca8fd40, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007ffbf78cbbd8 in QEventLoop::exec (this=0x7ffbdca8fd40, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007ffbf77ce0b0 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:542
#7  0x00007ffbf77d108c in QThreadPrivate::start (arg=0x2ad9710) at thread/qthread_unix.cpp:338
#8  0x00007ffbe8992764 in ?? () from /usr/lib64/libGL.so.1
#9  0x00007ffbf753ae0e in start_thread () from /lib64/libpthread.so.0
#10 0x00007ffbf62b32cd in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7ffb8def5700 (LWP 4809)):
#0  0x00007ffbf753e8f4 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ffb8df17ed3 in queue_processor(void*) () from /usr/lib64/IcedTeaPlugin.so
#2  0x00007ffbe8992764 in ?? () from /usr/lib64/libGL.so.1
#3  0x00007ffbf753ae0e in start_thread () from /lib64/libpthread.so.0
#4  0x00007ffbf62b32cd in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7ffb8d6f4700 (LWP 4810)):
#0  0x00007ffbf753e8f4 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ffb8df17ed3 in queue_processor(void*) () from /usr/lib64/IcedTeaPlugin.so
#2  0x00007ffbe8992764 in ?? () from /usr/lib64/libGL.so.1
#3  0x00007ffbf753ae0e in start_thread () from /lib64/libpthread.so.0
#4  0x00007ffbf62b32cd in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7ffb8cef3700 (LWP 4811)):
#0  0x00007ffbf753e8f4 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ffb8df17ed3 in queue_processor(void*) () from /usr/lib64/IcedTeaPlugin.so
#2  0x00007ffbe8992764 in ?? () from /usr/lib64/libGL.so.1
#3  0x00007ffbf753ae0e in start_thread () from /lib64/libpthread.so.0
#4  0x00007ffbf62b32cd in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7ffb866fb700 (LWP 4946)):
#0  0x00007ffbf753ce1a in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007ffbf302f471 in g_mutex_lock () from /usr/lib64/libglib-2.0.so.0
#2  0x00007ffbf2ff2ec9 in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#3  0x00007ffbf2ff35ab in ?? () from /usr/lib64/libglib-2.0.so.0
#4  0x00007ffbf2ff37a4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#5  0x00007ffbf78fb136 in QEventDispatcherGlib::processEvents (this=0x7ffb740008f0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0x00007ffbf78cb94f in QEventLoop::processEvents (this=this@entry=0x7ffb866fad10, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007ffbf78cbbd8 in QEventLoop::exec (this=0x7ffb866fad10, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007ffbf77ce0b0 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:542
#9  0x00007ffbf0c58e9e in KIO::NameLookUpThread::run (this=0x35cafb0) at /usr/src/debug/kdelibs-4.9.5/kio/kio/hostinfo.cpp:226
#10 0x00007ffbf77d108c in QThreadPrivate::start (arg=0x35cafb0) at thread/qthread_unix.cpp:338
#11 0x00007ffbe8992764 in ?? () from /usr/lib64/libGL.so.1
#12 0x00007ffbf753ae0e in start_thread () from /lib64/libpthread.so.0
#13 0x00007ffbf62b32cd in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7ffb799cc700 (LWP 6627)):
#0  0x00007ffbf753ec61 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ffbf77d1547 in wait (time=30000, this=0x7ffb74002de0) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x7ffb74002d58, time=30000) at thread/qwaitcondition_unix.cpp:158
#3  0x00007ffbf77c4d4f in QThreadPoolThread::run (this=0x7ffb74003140) at concurrent/qthreadpool.cpp:141
#4  0x00007ffbf77d108c in QThreadPrivate::start (arg=0x7ffb74003140) at thread/qthread_unix.cpp:338
#5  0x00007ffbe8992764 in ?? () from /usr/lib64/libGL.so.1
#6  0x00007ffbf753ae0e in start_thread () from /lib64/libpthread.so.0
#7  0x00007ffbf62b32cd in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7ffbf8c67780 (LWP 4546)):
[KCrash Handler]
#6  hash (key=...) at ../../../Source/WebCore/rendering/RenderTextControl.cpp:663
#7  hash (key=...) at ../../../Source/JavaScriptCore/wtf/HashTable.h:281
#8  lookup<WTF::AtomicString, WTF::IdentityHashTranslator<WTF::AtomicString, WTF::AtomicString, WTF::AtomicStringHash> > (key=..., this=<optimized out>) at ../../../Source/JavaScriptCore/wtf/HashTable.h:486
#9  contains<WTF::AtomicString, WTF::IdentityHashTranslator<WTF::AtomicString, WTF::AtomicString, WTF::AtomicStringHash> > (key=..., this=<optimized out>) at ../../../Source/JavaScriptCore/wtf/HashTable.h:806
#10 contains (key=..., this=<optimized out>) at ../../../Source/JavaScriptCore/wtf/HashTable.h:329
#11 contains (value=..., this=<optimized out>) at ../../../Source/JavaScriptCore/wtf/HashSet.h:157
#12 WebCore::RenderTextControl::hasValidAvgCharWidth (family=...) at ../../../Source/WebCore/rendering/RenderTextControl.cpp:536
#13 0x00007ffbed5c4ad5 in WebCore::RenderTextControl::getAvgCharWidth (this=0x7ffb8b108db8, family=...) at ../../../Source/WebCore/rendering/RenderTextControl.cpp:541
#14 0x00007ffbed5c753c in WebCore::RenderTextControlSingleLine::getAvgCharWidth (this=0x7ffb8b108db8, family=...) at ../../../Source/WebCore/rendering/RenderTextControlSingleLine.cpp:566
#15 0x00007ffbed5c0c95 in WebCore::RenderTextControl::computePreferredLogicalWidths (this=0x7ffb8b108db8) at ../../../Source/WebCore/rendering/RenderTextControl.cpp:567
#16 0x00007ffbed530cc3 in WebCore::RenderBox::minPreferredLogicalWidth (this=0x7ffb8b108db8) at ../../../Source/WebCore/rendering/RenderBox.cpp:672
#17 0x00007ffbed509d34 in WebCore::RenderBlock::computeInlinePreferredLogicalWidths (this=0x7ffb8b108ce8) at ../../../Source/WebCore/rendering/RenderBlock.cpp:4864
#18 0x00007ffbed50ac0d in WebCore::RenderBlock::computePreferredLogicalWidths (this=0x7ffb8b108ce8) at ../../../Source/WebCore/rendering/RenderBlock.cpp:4613
#19 0x00007ffbed5aec78 in WebCore::RenderTableCell::computePreferredLogicalWidths (this=0x7ffb8b108ce8) at ../../../Source/WebCore/rendering/RenderTableCell.cpp:132
#20 0x00007ffbed8a1999 in WebCore::AutoTableLayout::recalcColumn (this=this@entry=0x7ffb8abe7360, effCol=effCol@entry=1) at ../../../Source/WebCore/rendering/AutoTableLayout.cpp:75
#21 0x00007ffbed8a22ee in WebCore::AutoTableLayout::fullRecalc (this=this@entry=0x7ffb8abe7360) at ../../../Source/WebCore/rendering/AutoTableLayout.cpp:185
#22 0x00007ffbed8a3082 in WebCore::AutoTableLayout::computePreferredLogicalWidths (this=0x7ffb8abe7360, minWidth=@0x7ffb8b106ac0: -1, maxWidth=@0x7ffb8b106ac4: -1) at ../../../Source/WebCore/rendering/AutoTableLayout.cpp:224
#23 0x00007ffbed5ad29f in WebCore::RenderTable::computePreferredLogicalWidths (this=0x7ffb8b106a60) at ../../../Source/WebCore/rendering/RenderTable.cpp:595
#24 0x00007ffbed530cc3 in WebCore::RenderBox::minPreferredLogicalWidth (this=0x7ffb8b106a60) at ../../../Source/WebCore/rendering/RenderBox.cpp:672
#25 0x00007ffbed5a942c in WebCore::RenderTable::computeLogicalWidth (this=0x7ffb8b106a60) at ../../../Source/WebCore/rendering/RenderTable.cpp:227
#26 0x00007ffbed5ac76b in WebCore::RenderTable::layout (this=0x7ffb8b106a60) at ../../../Source/WebCore/rendering/RenderTable.cpp:286
#27 0x00007ffbed51c579 in WebCore::RenderBlock::layoutBlockChild (this=this@entry=0x7ffb8b1069a8, child=0x7ffb8b106a60, marginInfo=..., previousFloatLogicalBottom=@0x7fff474f2288: 0, maxFloatLogicalBottom=@0x7fff474f233c: 0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:2000
#28 0x00007ffbed51ce9b in WebCore::RenderBlock::layoutBlockChildren (this=this@entry=0x7ffb8b1069a8, relayoutChildren=relayoutChildren@entry=true, maxFloatLogicalBottom=@0x7fff474f233c: 0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1938
#29 0x00007ffbed5200f0 in WebCore::RenderBlock::layoutBlock (this=0x7ffb8b1069a8, relayoutChildren=true, pageLogicalHeight=0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1262
#30 0x00007ffbed5040dd in WebCore::RenderBlock::layout (this=0x7ffb8b1069a8) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1158
#31 0x00007ffbed51c579 in WebCore::RenderBlock::layoutBlockChild (this=this@entry=0x7ffb8b106490, child=0x7ffb8b1069a8, marginInfo=..., previousFloatLogicalBottom=@0x7fff474f24a8: 0, maxFloatLogicalBottom=@0x7fff474f255c: 0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:2000
#32 0x00007ffbed51ce9b in WebCore::RenderBlock::layoutBlockChildren (this=this@entry=0x7ffb8b106490, relayoutChildren=relayoutChildren@entry=true, maxFloatLogicalBottom=@0x7fff474f255c: 0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1938
#33 0x00007ffbed5200f0 in WebCore::RenderBlock::layoutBlock (this=0x7ffb8b106490, relayoutChildren=true, pageLogicalHeight=0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1262
#34 0x00007ffbed5040dd in WebCore::RenderBlock::layout (this=0x7ffb8b106490) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1158
#35 0x00007ffbed51c579 in WebCore::RenderBlock::layoutBlockChild (this=this@entry=0x7ffb8b106298, child=0x7ffb8b106490, marginInfo=..., previousFloatLogicalBottom=@0x7fff474f26c8: 0, maxFloatLogicalBottom=@0x7fff474f277c: 0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:2000
#36 0x00007ffbed51ce9b in WebCore::RenderBlock::layoutBlockChildren (this=this@entry=0x7ffb8b106298, relayoutChildren=relayoutChildren@entry=true, maxFloatLogicalBottom=@0x7fff474f277c: 0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1938
#37 0x00007ffbed5200f0 in WebCore::RenderBlock::layoutBlock (this=0x7ffb8b106298, relayoutChildren=true, pageLogicalHeight=0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1262
#38 0x00007ffbed5040dd in WebCore::RenderBlock::layout (this=0x7ffb8b106298) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1158
#39 0x00007ffbed51c579 in WebCore::RenderBlock::layoutBlockChild (this=this@entry=0x7ffb8b106020, child=0x7ffb8b106298, marginInfo=..., previousFloatLogicalBottom=@0x7fff474f28e8: 0, maxFloatLogicalBottom=@0x7fff474f299c: 0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:2000
#40 0x00007ffbed51ce9b in WebCore::RenderBlock::layoutBlockChildren (this=this@entry=0x7ffb8b106020, relayoutChildren=relayoutChildren@entry=true, maxFloatLogicalBottom=@0x7fff474f299c: 0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1938
#41 0x00007ffbed5200f0 in WebCore::RenderBlock::layoutBlock (this=0x7ffb8b106020, relayoutChildren=true, pageLogicalHeight=0) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1262
#42 0x00007ffbed5040dd in WebCore::RenderBlock::layout (this=0x7ffb8b106020) at ../../../Source/WebCore/rendering/RenderBlock.cpp:1158
#43 0x00007ffbed5d5b88 in WebCore::RenderView::layout (this=0x7ffb8b106020) at ../../../Source/WebCore/rendering/RenderView.cpp:130
#44 0x00007ffbed458247 in WebCore::FrameView::layout (this=0x7ffb7d811580, allowSubtree=<optimized out>) at ../../../Source/WebCore/page/FrameView.cpp:964
#45 0x00007ffbed576b4f in WebCore::RenderLayer::hitTest (this=0x7ffb8b106158, request=..., result=...) at ../../../Source/WebCore/rendering/RenderLayer.cpp:2812
#46 0x00007ffbed1b6ddb in WebCore::Document::prepareMouseEvent (this=0x7ffb7e7ae400, request=..., documentPoint=..., event=...) at ../../../Source/WebCore/dom/Document.cpp:2724
#47 0x00007ffbed43b0e0 in WebCore::EventHandler::prepareMouseEvent (this=this@entry=0x7ffb8b58fa18, request=..., mev=...) at ../../../Source/WebCore/page/EventHandler.cpp:1871
#48 0x00007ffbed442d48 in WebCore::EventHandler::handleMouseMoveEvent (this=this@entry=0x7ffb8b58fa18, mouseEvent=..., hoveredNode=hoveredNode@entry=0x7fff474f2e70) at ../../../Source/WebCore/page/EventHandler.cpp:1592
#49 0x00007ffbed4431b2 in WebCore::EventHandler::mouseMoved (this=0x7ffb8b58fa18, event=...) at ../../../Source/WebCore/page/EventHandler.cpp:1524
#50 0x00007ffbed04dc0b in QWebPagePrivate::mouseMoveEvent<QMouseEvent> (this=<optimized out>, ev=0x7fff474f3850) at ../../../../Source/WebKit/qt/Api/qwebpage.cpp:687
#51 0x00007ffbed058806 in QWebPage::event (this=<optimized out>, ev=0x7fff474f3850) at ../../../../Source/WebKit/qt/Api/qwebpage.cpp:3052
#52 0x00007ffbed05adb8 in QWebView::mouseMoveEvent (this=<optimized out>, ev=0x7fff474f3850) at ../../../../Source/WebKit/qt/Api/qwebview.cpp:995
#53 0x00007ffbf6aaa15b in QWidget::event (this=0x33adf80, event=0x7fff474f3850) at kernel/qwidget.cpp:8360
#54 0x00007ffbed05b397 in QWebView::event (this=0x33adf80, e=0x7fff474f3850) at ../../../../Source/WebKit/qt/Api/qwebview.cpp:865
#55 0x00007ffbf6a5a85c in QApplicationPrivate::notify_helper (this=this@entry=0x231d940, receiver=receiver@entry=0x33adf80, e=e@entry=0x7fff474f3850) at kernel/qapplication.cpp:4562
#56 0x00007ffbf6a5f53b in QApplication::notify (this=<optimized out>, receiver=0x33adf80, e=0x7fff474f3850) at kernel/qapplication.cpp:4105
#57 0x00007ffbf866c636 in KApplication::notify (this=0x7fff474f4690, receiver=0x33adf80, event=0x7fff474f3850) at /usr/src/debug/kdelibs-4.9.5/kdeui/kernel/kapplication.cpp:311
#58 0x00007ffbf78ccbfe in QCoreApplication::notifyInternal (this=0x7fff474f4690, receiver=0x33adf80, event=0x7fff474f3850) at kernel/qcoreapplication.cpp:946
#59 0x00007ffbf6a5b69b in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:231
#60 QApplicationPrivate::sendMouseEvent (receiver=0x33adf80, event=0x7fff474f3850, alienWidget=0x33adf80, nativeWidget=0x2376910, buttonDown=0x7ffbf752f248 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3173
#61 0x00007ffbf6ad5e54 in QETWidget::translateMouseEvent (this=this@entry=0x2376910, event=event@entry=0x7fff474f3fc0) at kernel/qapplication_x11.cpp:4527
#62 0x00007ffbf6ad4be1 in QApplication::x11ProcessEvent (this=0x7fff474f4690, event=0x7fff474f3fc0) at kernel/qapplication_x11.cpp:3650
#63 0x00007ffbf6afaf72 in x11EventSourceDispatch (s=0x2320190, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#64 0x00007ffbf2ff33b5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#65 0x00007ffbf2ff36e8 in ?? () from /usr/lib64/libglib-2.0.so.0
#66 0x00007ffbf2ff37a4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#67 0x00007ffbf78fb116 in QEventDispatcherGlib::processEvents (this=0x21f2790, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#68 0x00007ffbf6afabee in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#69 0x00007ffbf78cb94f in QEventLoop::processEvents (this=this@entry=0x7fff474f4390, flags=...) at kernel/qeventloop.cpp:149
#70 0x00007ffbf78cbbd8 in QEventLoop::exec (this=0x7fff474f4390, flags=...) at kernel/qeventloop.cpp:204
#71 0x00007ffbf78d0878 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#72 0x00007ffbe4199de2 in kdemain () from /usr/lib64/libkdeinit4_konqueror.so
#73 0x0000000000408856 in _start ()

Possible duplicates by query: bug 307730, bug 303914.

Reported using DrKonqi
Comment 1 Dawit Alemayehu 2013-01-19 16:45:23 UTC
I cannot reproduce this crash. However, I am using QtWebKit 2.3 branch and not the QtWebKit that comes with stock Qt releases. Can you reliably reproduce this crash ?
Comment 2 Russ Fineman 2013-01-19 18:39:19 UTC
(In reply to comment #1)
> I cannot reproduce this crash. However, I am using QtWebKit 2.3 branch and
> not the QtWebKit that comes with stock Qt releases. Can you reliably
> reproduce this crash ?

Yes, just tried it again this morning and it crashes immeditally on selecting the bookmark. I know its the correct one and is the same one the other working browsers go to. Its a login screen for my isp's virus/spam filters.

Code
--------------
@linux-9wvj:~> rpm -qa |grep Qt
libQtWebKit4-debuginfo-4.8.4+2.2.0-43.1.x86_64
libQtWebKit-devel-4.8.4+2.2.0-43.1.x86_64
libQtSolutions_SOAP-2_7-1-1.0.0-18.2.x86_64
libQtWebKit4-4.8.4+2.2.0-43.1.x86_64
/Code
-------------
Anything else I can supply?
Comment 3 Russ Fineman 2013-01-19 18:43:14 UTC
Just found bug 313439, could be related to it.
Russ
Comment 4 Dawit Alemayehu 2013-02-09 23:04:43 UTC
Well. This is an upstream crash in QtWebKit. Please open a ticket there. See http://trac.webkit.org/wiki/QtWebKitBugs for details.