FS#21083 - [libwebkit] Incorrect font fallback determination causes 100% cpu usage

Attached to Project: Arch Linux
Opened by Ivan Bulatovic (combuster) - Tuesday, 05 October 2010, 11:55 GMT
Last edited by Andreas Radke (AndyRTR) - Sunday, 21 November 2010, 10:33 GMT
Task Type Bug Report
Category Upstream Bugs
Status Closed
Assigned To Andreas Radke (AndyRTR)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No



There is a bug in libwebkit that causes Epiphany, and most probably other libwebkit based browsers, to stress the entire system with 100% cpu usage while visiting certain web sites.


Patch is not yet included in nightly builds.

Additional info:
* package version(s)
* config and/or log files etc.

Steps to reproduce:
Visit http://www.ubuntu-rs.org/ with Epiphany 2.30.6-2 or many other sites with custom fonts or japanese/chinese encoding.
This task depends upon

Closed by  Andreas Radke (AndyRTR)
Sunday, 21 November 2010, 10:33 GMT
Reason for closing:  Upstream
Comment by Ivan Bulatovic (combuster) - Tuesday, 05 October 2010, 12:01 GMT
Oops, I've made a mistake and I can't edit my own bug report. This is a libwebkit bug and category should be upstream bug. Sry ! :(
Comment by Andreas Radke (AndyRTR) - Sunday, 10 October 2010, 12:42 GMT
Can you build a new libwebkit and confirm that this patch from the bugreport fixes it?
Comment by Ivan Bulatovic (combuster) - Sunday, 10 October 2010, 14:30 GMT
That patch doesn't apply even. After picking up bits and pieces from it and applying it manually on FontCacheCairo.cpp and FontPlatformData.h in WebCore/platform/graphics/cairo directory I get errors while compiling. So patch doesn't work for me, tried it on webkit 1.2.5.

Comment by Andreas Radke (AndyRTR) - Saturday, 30 October 2010, 14:23 GMT
http://trac.webkit.org/changeset/70688 - please try the new unified diff at the buttom of that page.
Comment by Ivan Bulatovic (combuster) - Saturday, 30 October 2010, 23:46 GMT
Yes, applying unified diff on the latest developement release of webkitgtk+ 1.3.5 fixes the problem.
Comment by Andreas Radke (AndyRTR) - Friday, 05 November 2010, 19:39 GMT
does it apply on the stable release and solves it too?
Comment by Ivan Bulatovic (combuster) - Saturday, 06 November 2010, 00:36 GMT
No, the patch can't be applied in it's current form. Backporting could be possible, I'll give it a shot...
Comment by Ivan Bulatovic (combuster) - Saturday, 20 November 2010, 23:15 GMT
I haven't had any success so far in backporting it as the API changed very much between these two versions. I came close, cairo related code compiled but changes I've made in some of the header files broke things elsewhere so even if I put it all together I can't be certain that _that_ won't introduce a number of unrelated bugs.

So I'll guess we will have to wait untill webkitgtk dev version becomes stable, or someone else backport this stuff in future 1.2.x versions.
Comment by Andreas Radke (AndyRTR) - Sunday, 21 November 2010, 10:33 GMT
This is a upstream issue we can't solve here. Closing this as "upstream". If you find a solution to fix it before a new release just ping me or ask to reopen this one.