Bug 1402586 - WebKitWebProcess at 100% CPU
Summary: WebKitWebProcess at 100% CPU
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: Fedora
Classification: Fedora
Component: webkitgtk4
Version: 25
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Tomas Popela
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1405791 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-12-07 21:52 UTC by Davide Repetto
Modified: 2017-01-04 14:11 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-12-08 15:51:30 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
This is the message that's causing several seconds of high CPU usage (30.37 KB, message/rfc822)
2016-12-07 21:52 UTC, Davide Repetto
no flags Details
bt full 1 (85.09 KB, text/plain)
2016-12-08 10:06 UTC, Milan Crha
no flags Details
bt full 2 (80.71 KB, text/plain)
2016-12-08 10:08 UTC, Milan Crha
no flags Details
em00.html (24.04 KB, text/html)
2016-12-08 10:44 UTC, Milan Crha
no flags Details
em01.html (2.01 KB, text/html)
2016-12-08 11:10 UTC, Milan Crha
no flags Details


Links
System ID Private Priority Status Summary Last Updated
WebKit Project 165601 0 None None None 2016-12-08 15:51:30 UTC

Description Davide Repetto 2016-12-07 21:52:43 UTC
Created attachment 1229223 [details]
This is the message that's causing several seconds of high CPU usage

Description of problem:
=======================
The attached message causes Evolution to become unresponsive for several seconds while the process "/usr/libexec/webkit2gtk-4.0/WebKitWebProcess 43" pegs the CPU at 100%

Version-Release number of selected component (if applicable):
=============================================================
evolution-3.22.2-1.fc25.x86_64

How reproducible:
=================
Consistently


Steps to Reproduce:
1. Import the message in Evolution
   In order to ensure it is not a compositing problem
2. display the message in the preview window
3. Observe evolution in crisis... :-/


Additional info:
================
It happens also with "WEBKIT_DISABLE_COMPOSITING_MODE=1"

Comment 1 Davide Repetto 2016-12-07 21:54:11 UTC
please ignore the passage:
"In order to ensure it is not a compositing problem"

Comment 2 Milan Crha 2016-12-07 22:00:50 UTC
Thanks for a bug report. The message is very small, but makes WebKit very unhappy. One snapshot of the WebKitWebPorcess can be found below:

Thread 1 (Thread 0x7f70a87d2fc0 (LWP 7561)):
#0  0x00007f709a3f4f8c in malloc () at /lib64/libc.so.6
#1  0x00007f709dd3006c in hnj_malloc () at /lib64/libhyphen.so.0
#2  0x00007f709dd3010c in hnj_strdup () at /lib64/libhyphen.so.0
#3  0x00007f709dd301cf in hnj_hash_insert () at /lib64/libhyphen.so.0
#4  0x00007f709dd302c9 in hnj_get_state.isra.0.part () at /lib64/libhyphen.so.0
#5  0x00007f709dd308bb in hnj_hyphen_load_line () at /lib64/libhyphen.so.0
#6  0x00007f709dd30ec1 in hnj_hyphen_load_file () at /lib64/libhyphen.so.0
#7  0x00007f709dd30f42 in hnj_hyphen_load () at /lib64/libhyphen.so.0
#8  0x00007f70a75aa6a6 in WebCore::lastHyphenLocation(WTF::StringView, unsigned long, WTF::AtomicString const&) () at /lib64/libwebkit2gtk-4.0.so.37
#9  0x00007f70a72ac27a in WebCore::RenderText::computePreferredLogicalWidths(float, WTF::HashSet<WebCore::Font const*, WTF::PtrHash<WebCore::Font const*>, WTF::HashTraits<WebCore::Font const*> >&, WebCore::GlyphOverflow&) () at /lib64/libwebkit2gtk-4.0.so.37
#10 0x00007f70a72b02e2 in WebCore::RenderText::computePreferredLogicalWidths(float) () at /lib64/libwebkit2gtk-4.0.so.37
#11 0x00007f70a72aa1fc in WebCore::RenderText::trimmedPrefWidths(float, float&, bool&, float&, bool&, bool&, bool&, float&, float&, float&, float&, bool&) () at /lib64/libwebkit2gtk-4.0.so.37
#12 0x00007f70a71553a5 in WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#13 0x00007f70a7157302 in WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#14 0x00007f70a7130cb4 in WebCore::RenderBlock::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#15 0x00007f70a716b331 in WebCore::RenderBox::minPreferredLogicalWidth() const () at /lib64/libwebkit2gtk-4.0.so.37
#16 0x00007f70a7137fd4 in WebCore::RenderBlock::computeBlockPreferredLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#17 0x00007f70a71573bd in WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#18 0x00007f70a7130cb4 in WebCore::RenderBlock::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#19 0x00007f70a716b331 in WebCore::RenderBox::minPreferredLogicalWidth() const () at /lib64/libwebkit2gtk-4.0.so.37
#20 0x00007f70a7137fd4 in WebCore::RenderBlock::computeBlockPreferredLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#21 0x00007f70a71573bd in WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#22 0x00007f70a7130cb4 in WebCore::RenderBlock::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#23 0x00007f70a7297cfc in WebCore::RenderTableCell::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#24 0x00007f70a716b331 in WebCore::RenderBox::minPreferredLogicalWidth() const () at /lib64/libwebkit2gtk-4.0.so.37
#25 0x00007f70a70fa76c in WebCore::AutoTableLayout::recalcColumn(unsigned int) () at /lib64/libwebkit2gtk-4.0.so.37
#26 0x00007f70a70fb00d in WebCore::AutoTableLayout::fullRecalc() () at /lib64/libwebkit2gtk-4.0.so.37
#27 0x00007f70a70fb5e2 in WebCore::AutoTableLayout::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#28 0x00007f70a728acfa in WebCore::RenderTable::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#29 0x00007f70a716b331 in WebCore::RenderBox::minPreferredLogicalWidth() const () at /lib64/libwebkit2gtk-4.0.so.37
#30 0x00007f70a7137fd4 in WebCore::RenderBlock::computeBlockPreferredLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#31 0x00007f70a71573bd in WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#32 0x00007f70a7130cb4 in WebCore::RenderBlock::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#33 0x00007f70a7297cfc in WebCore::RenderTableCell::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#34 0x00007f70a716b331 in WebCore::RenderBox::minPreferredLogicalWidth() const () at /lib64/libwebkit2gtk-4.0.so.37
#35 0x00007f70a70fa76c in WebCore::AutoTableLayout::recalcColumn(unsigned int) () at /lib64/libwebkit2gtk-4.0.so.37
#36 0x00007f70a70fb00d in WebCore::AutoTableLayout::fullRecalc() () at /lib64/libwebkit2gtk-4.0.so.37
#37 0x00007f70a70fb5e2 in WebCore::AutoTableLayout::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#38 0x00007f70a728acfa in WebCore::RenderTable::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#39 0x00007f70a716b331 in WebCore::RenderBox::minPreferredLogicalWidth() const () at /lib64/libwebkit2gtk-4.0.so.37
#40 0x00007f70a7137fd4 in WebCore::RenderBlock::computeBlockPreferredLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#41 0x00007f70a71573bd in WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#42 0x00007f70a7130cb4 in WebCore::RenderBlock::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#43 0x00007f70a7297cfc in WebCore::RenderTableCell::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#44 0x00007f70a716b331 in WebCore::RenderBox::minPreferredLogicalWidth() const () at /lib64/libwebkit2gtk-4.0.so.37
#45 0x00007f70a70fa76c in WebCore::AutoTableLayout::recalcColumn(unsigned int) () at /lib64/libwebkit2gtk-4.0.so.37
#46 0x00007f70a70fb00d in WebCore::AutoTableLayout::fullRecalc() () at /lib64/libwebkit2gtk-4.0.so.37
#47 0x00007f70a70fb5e2 in WebCore::AutoTableLayout::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#48 0x00007f70a728acfa in WebCore::RenderTable::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#49 0x00007f70a716b331 in WebCore::RenderBox::minPreferredLogicalWidth() const () at /lib64/libwebkit2gtk-4.0.so.37
#50 0x00007f70a7137fd4 in WebCore::RenderBlock::computeBlockPreferredLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#51 0x00007f70a71573bd in WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#52 0x00007f70a7130cb4 in WebCore::RenderBlock::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#53 0x00007f70a716b331 in WebCore::RenderBox::minPreferredLogicalWidth() const () at /lib64/libwebkit2gtk-4.0.so.37
#54 0x00007f70a7137fd4 in WebCore::RenderBlock::computeBlockPreferredLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#55 0x00007f70a71573bd in WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) const () at /lib64/libwebkit2gtk-4.0.so.37
#56 0x00007f70a7130cb4 in WebCore::RenderBlock::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#57 0x00007f70a7297cfc in WebCore::RenderTableCell::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#58 0x00007f70a716b331 in WebCore::RenderBox::minPreferredLogicalWidth() const () at /lib64/libwebkit2gtk-4.0.so.37
#59 0x00007f70a70fa76c in WebCore::AutoTableLayout::recalcColumn(unsigned int) () at /lib64/libwebkit2gtk-4.0.so.37
#60 0x00007f70a70fb00d in WebCore::AutoTableLayout::fullRecalc() () at /lib64/libwebkit2gtk-4.0.so.37
#61 0x00007f70a70fb5e2 in WebCore::AutoTableLayout::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#62 0x00007f70a728acfa in WebCore::RenderTable::computePreferredLogicalWidths() () at /lib64/libwebkit2gtk-4.0.so.37
#63 0x00007f70a716b331 in WebCore::RenderBox::minPreferredLogicalWidth() const () at /lib64/libwebkit2gtk-4.0.so.37
#64 0x00007f70a7287a5f in WebCore::RenderTable::updateLogicalWidth() () at /lib64/libwebkit2gtk-4.0.so.37
#65 0x00007f70a728b5c2 in WebCore::RenderTable::layout() () at /lib64/libwebkit2gtk-4.0.so.37
#66 0x00007f70a715384c in WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#67 0x00007f70a71549a3 in WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#68 0x00007f70a71591c2 in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) () at /lib64/libwebkit2gtk-4.0.so.37
#69 0x00007f70a7133d43 in WebCore::RenderBlock::layout() () at /lib64/libwebkit2gtk-4.0.so.37
#70 0x00007f70a715384c in WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#71 0x00007f70a71549a3 in WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#72 0x00007f70a71591c2 in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) () at /lib64/libwebkit2gtk-4.0.so.37
#73 0x00007f70a7133d43 in WebCore::RenderBlock::layout() () at /lib64/libwebkit2gtk-4.0.so.37
#74 0x00007f70a715384c in WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#75 0x00007f70a71549a3 in WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#76 0x00007f70a71591c2 in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) () at /lib64/libwebkit2gtk-4.0.so.37
#77 0x00007f70a7133d43 in WebCore::RenderBlock::layout() () at /lib64/libwebkit2gtk-4.0.so.37
#78 0x00007f70a72d6639 in WebCore::RenderView::layoutContent(WebCore::LayoutState const&) () at /lib64/libwebkit2gtk-4.0.so.37
#79 0x00007f70a72d6b47 in WebCore::RenderView::layout() () at /lib64/libwebkit2gtk-4.0.so.37
#80 0x00007f70a6f5f572 in WebCore::FrameView::layout(bool) () at /lib64/libwebkit2gtk-4.0.so.37
#81 0x00007f70a72daa28 in WebCore::RenderWidget::updateWidgetPosition() () at /lib64/libwebkit2gtk-4.0.so.37
#82 0x00007f70a71d7104 in WebCore::RenderFrameBase::peformLayoutWithFlattening(bool, bool) () at /lib64/libwebkit2gtk-4.0.so.37
#83 0x00007f70a71d7619 in WebCore::RenderFrameBase::layoutWithFlattening(bool, bool) () at /lib64/libwebkit2gtk-4.0.so.37
#84 0x00007f70a71f1a0c in WebCore::RenderIFrame::layout() () at /lib64/libwebkit2gtk-4.0.so.37
#85 0x00007f70a7166758 in WebCore::RenderBlockFlow::layoutLineBoxes(bool, WebCore::LayoutUnit&, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#86 0x00007f70a7158d6f in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) () at /lib64/libwebkit2gtk-4.0.so.37
#87 0x00007f70a7133d43 in WebCore::RenderBlock::layout() () at /lib64/libwebkit2gtk-4.0.so.37
#88 0x00007f70a715384c in WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#89 0x00007f70a71549a3 in WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#90 0x00007f70a71591c2 in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) () at /lib64/libwebkit2gtk-4.0.so.37
#91 0x00007f70a7133d43 in WebCore::RenderBlock::layout() () at /lib64/libwebkit2gtk-4.0.so.37
#92 0x00007f70a715384c in WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#93 0x00007f70a71549a3 in WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#94 0x00007f70a71591c2 in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) () at /lib64/libwebkit2gtk-4.0.so.37
#95 0x00007f70a7133d43 in WebCore::RenderBlock::layout() () at /lib64/libwebkit2gtk-4.0.so.37
#96 0x00007f70a715384c in WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#97 0x00007f70a71549a3 in WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&) () at /lib64/libwebkit2gtk-4.0.so.37
#98 0x00007f70a71591c2 in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) () at /lib64/libwebkit2gtk-4.0.so.37
#99 0x00007f70a7133d43 in WebCore::RenderBlock::layout() () at /lib64/libwebkit2gtk-4.0.so.37
#100 0x00007f70a72d6639 in WebCore::RenderView::layoutContent(WebCore::LayoutState const&) () at /lib64/libwebkit2gtk-4.0.so.37
#101 0x00007f70a72d6b47 in WebCore::RenderView::layout() () at /lib64/libwebkit2gtk-4.0.so.37
#102 0x00007f70a6f5f572 in WebCore::FrameView::layout(bool) () at /lib64/libwebkit2gtk-4.0.so.37
#103 0x00007f70a6b18125 in WebCore::Document::updateLayout() () at /lib64/libwebkit2gtk-4.0.so.37
#104 0x00007f70a72cf88d in WebCore::RenderView::hitTest(WebCore::HitTestRequest const&, WebCore::HitTestLocation const&, WebCore::HitTestResult&) () at /lib64/libwebkit2gtk-4.0.so.37
#105 0x00007f70a6b1aa53 in WebCore::Document::prepareMouseEvent(WebCore::HitTestRequest const&, WebCore::LayoutPoint const&, WebCore::PlatformMouseEvent const&) () at /lib64/libwebkit2gtk-4.0.so.37
#106 0x00007f70a6f39e03 in WebCore::EventHandler::prepareMouseEvent(WebCore::HitTestRequest const&, WebCore::PlatformMouseEvent const&) () at /lib64/libwebkit2gtk-4.0.so.37
#107 0x00007f70a6f41fa9 in WebCore::EventHandler::handleMouseMoveEvent(WebCore::PlatformMouseEvent const&, WebCore::HitTestResult*, bool) [clone .part.266] () at /lib64/libwebkit2gtk-4.0.so.37
#108 0x00007f70a6f44c5f in WebCore::EventHandler::passMouseMovedEventToScrollbars(WebCore::PlatformMouseEvent const&) () at /lib64/libwebkit2gtk-4.0.so.37
#109 0x00007f70a667685b in WebKit::WebPage::mouseEvent(WebKit::WebMouseEvent const&) () at /lib64/libwebkit2gtk-4.0.so.37
#110 0x00007f70a67bb8bb in WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection&, IPC::Decoder&) () at /lib64/libwebkit2gtk-4.0.so.37
#111 0x00007f70a64aa159 in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) () at /lib64/libwebkit2gtk-4.0.so.37
#112 0x00007f70a65d6666 in WebKit::WebProcess::didReceiveMessage(IPC::Connection&, IPC::Decoder&) () at /lib64/libwebkit2gtk-4.0.so.37
#113 0x00007f70a64a62b6 in IPC::Connection::dispatchMessage(std::unique_ptr<IPC::Decoder, std::default_delete<IPC::Decoder> >) () at /lib64/libwebkit2gtk-4.0.so.37
#114 0x00007f70a64a6f48 in IPC::Connection::dispatchOneMessage() () at /lib64/libwebkit2gtk-4.0.so.37
#115 0x00007f70a5b678dd in WTF::RunLoop::performWork() () at /lib64/libjavascriptcoregtk-4.0.so.18
#116 0x00007f70a5b8e2b9 in WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) () at /lib64/libjavascriptcoregtk-4.0.so.18
#117 0x00007f709f22ce42 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#118 0x00007f709f22d1c0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#119 0x00007f709f22d4e2 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#120 0x00007f70a5b8eb70 in WTF::RunLoop::run() () at /lib64/libjavascriptcoregtk-4.0.so.18
#121 0x00007f70a67618a9 in int WebKit::ChildProcessMain<WebKit::WebProcess, WebKit::WebProcessMain>(int, char**) () at /lib64/libwebkit2gtk-4.0.so.37
#122 0x00007f709a38f401 in __libc_start_main () at /lib64/libc.so.6
#123 0x0000558abb5d3c5a in _start ()

Comment 3 Michael Catanzaro 2016-12-08 00:52:49 UTC
It's not clear to me if the problem is in WebKit or libhyphen. Next step would be to get a full backtrace with local variables (e.g. like the ones generated by ABRT).

Comment 4 Milan Crha 2016-12-08 10:06:23 UTC
Created attachment 1229430 [details]
bt full 1

Comment 5 Milan Crha 2016-12-08 10:08:31 UTC
Created attachment 1229431 [details]
bt full 2

Both attached are 'bt full' with
   hyphen-2.8.8-4.fc24.x86_64
   webkitgtk4-2.14.2-1.fc25.x86_64
and their debuginfo installed (1GB download, 4GB on the disk), where the init.txt is just the initial backtrace, the later.txt is a backtrace taken like 2 seconds later. They are quite large, thus I decided to atach them, rather than paste them inline.

Comment 6 Milan Crha 2016-12-08 10:44:54 UTC
Created attachment 1229435 [details]
em00.html

This is a test HTML code which can reproduce the high CPU usage in the MiniBrowser as well. I "censored" the images, to not download them (evolution doesn't download them by default here), but if you really want to see them, then replace "xx.xxxxxxxxxxx.xx" with "ds.reteofferte.it" in the file.

Comment 7 Milan Crha 2016-12-08 10:54:04 UTC
Just for a record, the evolution does some synchronous D-Bus calls in the main thread when talking to its web extension, which is the reason why it is frozen while the WebProcess blocks the main loop with the above backtrace. Once all those D-bus calls timeout it gets responsive again, though the preview panel can be empty.

Couple more observations:
a) when I tried to capture the HTML code in the web inspector, then it crashed
   the web process several times. Both when trying to pick the main element of
   the page (in the evolution inside an iframe) with mouse (with the tool)
b) then also when right-clicking a node in the inspector structure.
c) The first attempt to scroll the page causes another lag and high CPU usage,
   but the consequent scrolls are all fine.
I cannot reproduce these in the MiniBrowser, I think it's due to the iframe encapsulation of the page, but I didn't try it.

In any case, this web page is very interesting, from my point of view.

Comment 8 Tomas Popela 2016-12-08 11:00:33 UTC
(In reply to Milan Crha from comment #7)
> Couple more observations:
> a) when I tried to capture the HTML code in the web inspector, then it
> crashed
>    the web process several times. Both when trying to pick the main element
> of
>    the page (in the evolution inside an iframe) with mouse (with the tool)
> b) then also when right-clicking a node in the inspector structure.
> I cannot reproduce these in the MiniBrowser, I think it's due to the iframe
> encapsulation of the page, but I didn't try it.

This is because the inspector requires the AC to be enabled, but Evolution has it disabled now. It worked in MiniBrowser as there you had the AC enabled.

Comment 9 Milan Crha 2016-12-08 11:10:26 UTC
Created attachment 1229438 [details]
em01.html

I'm sorry for the noise...

This is the toplevel HTML, referencing /tmp/em00.html. There is a difference that the height of the iframe is set to "10" in the evolution and that the evolution itself uses frame-flattening, which I think is an important detail, if anyone would like to test also those things in the pure webkitgtk4.

Comment 10 Michael Catanzaro 2016-12-08 12:30:05 UTC
Glad you uploaded two traces, that shows that it's creating multiple hyphenation dictionaries (not just one) so it's probably a WebKit bug (a loop somewhere) not libhyphen. Can you report it upstream?

Comment 11 Milan Crha 2016-12-08 15:51:30 UTC
Sure thing. I filled [1]. Please see it for any further updates.

[1] https://bugs.webkit.org/show_bug.cgi?id=165601

Comment 12 Milan Crha 2017-01-04 14:11:27 UTC
*** Bug 1405791 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.