CLOSED FIXED 24074
WebKit used 80% CPU on idle
https://bugs.webkit.org/show_bug.cgi?id=24074
Summary WebKit used 80% CPU on idle
Dimitris Apostolou
Reported 2009-02-21 07:14:36 PST
WebKit was trying to open home page (main google search page). I noticed that my MacBook Pro's fans started to spin. I launched Activity Monitor and WebKit was using 80% CPU.
Attachments
Activity Monitor sample (51.26 KB, text/plain)
2009-02-21 07:15 PST, Dimitris Apostolou
no flags
Screenshot from Console (54.50 KB, image/png)
2009-02-22 03:44 PST, Dimitris Apostolou
no flags
New sample from Activity Monitor (49.57 KB, text/plain)
2009-02-22 05:10 PST, Dimitris Apostolou
no flags
Shark sample (1.33 MB, application/zip)
2009-02-22 05:12 PST, Dimitris Apostolou
no flags
Instruments sample (537.36 KB, application/zip)
2009-02-22 05:13 PST, Dimitris Apostolou
no flags
Crash log (57.02 KB, application/octet-stream)
2009-02-22 05:14 PST, Dimitris Apostolou
no flags
Snapshot of launch after crash (191.50 KB, image/png)
2009-02-22 05:15 PST, Dimitris Apostolou
no flags
Snapshot of internet plug ins in home library folder (297.72 KB, image/png)
2009-02-22 05:17 PST, Dimitris Apostolou
no flags
Snapshot of internet plug ins in main library folder (411.32 KB, image/png)
2009-02-22 05:18 PST, Dimitris Apostolou
no flags
Snapshot of a disabled internet plug in placed in main library folder (299.40 KB, image/png)
2009-02-22 05:19 PST, Dimitris Apostolou
no flags
Dimitris Apostolou
Comment 1 2009-02-21 07:15:38 PST
Created attachment 27853 [details] Activity Monitor sample
Alexey Proskuryakov
Comment 2 2009-02-22 02:45:09 PST
Thank you for the report! Could you please provide some additional information? Does this happen each time for you, even after quitting and re-starting Safari? What is the Google search URL as seen in address bar? I'm getting automatically redirected to <http://www.google.ru>, and I don't see this problem there. Are you sure Google search was the only open page? I'm seeing plug-in related symbols in the sample, which is surprising, because plug-ins are not used there.
Dimitris Apostolou
Comment 3 2009-02-22 03:06:57 PST
It just happened once. I haven't been able to reproduce it since. Home page is http://www.google.com/ At the exact moment there was only this page open. But previously I was filing bugs in JIRA :) Unfortunately you don't have access to the particular JIRA URL because it is password restricted and also https. https://jira.skype.net/ So do you think there is a chance that the leak was from before?
Dimitris Apostolou
Comment 4 2009-02-22 03:44:59 PST
Created attachment 27858 [details] Screenshot from Console
Dimitris Apostolou
Comment 5 2009-02-22 05:10:38 PST
Created attachment 27860 [details] New sample from Activity Monitor
Dimitris Apostolou
Comment 6 2009-02-22 05:12:44 PST
Created attachment 27861 [details] Shark sample
Dimitris Apostolou
Comment 7 2009-02-22 05:13:27 PST
Created attachment 27862 [details] Instruments sample
Dimitris Apostolou
Comment 8 2009-02-22 05:14:14 PST
Created attachment 27863 [details] Crash log
Dimitris Apostolou
Comment 9 2009-02-22 05:15:39 PST
Created attachment 27864 [details] Snapshot of launch after crash Indeed, it seems that the issue is with some plug in.
Dimitris Apostolou
Comment 10 2009-02-22 05:17:32 PST
Created attachment 27865 [details] Snapshot of internet plug ins in home library folder
Dimitris Apostolou
Comment 11 2009-02-22 05:18:08 PST
Created attachment 27866 [details] Snapshot of internet plug ins in main library folder
Dimitris Apostolou
Comment 12 2009-02-22 05:19:00 PST
Created attachment 27867 [details] Snapshot of a disabled internet plug in placed in main library folder
Dimitris Apostolou
Comment 13 2009-02-22 05:19:45 PST
I think these should be enough to find the cause :)
Alexey Proskuryakov
Comment 14 2009-02-22 08:25:24 PST
Thanks! (In reply to comment #8) > Crash log When did it crash? Do you think this is related to CPU usage you reported? I see a lot of 3rd party binaries in the crash log, they may be affecting WebKit behavior in unexpected ways. Normally, we don't investigate unreproducible bugs that happen with unsupported 3rd party extensions installed. I'm keeping this report open for a while for Dmitry to have a look at the sample - maybe he'll notice something interesting.
Dmitry Titov
Comment 15 2009-02-22 12:52:01 PST
I think the busy loop you have experienced was related to a Java applet on jira.skype.net Here is my theory (if I read the tea leaves of samples right): WebKit is trying to deliver some data via NetscapePluginStream to a plugin - but plugin does not take any bytes (not ready) and WebKit schedules an async timer event with timeout 0 to try again. This just repeats a lot, causing sort of a "busy wait" via a timer with 0 delay. I guess sometimes a plugin needs the main thread's run loop to run in order to process things and be able to receive more data - but in this case roundtrip via run loop does not help. See WebBaseNetscapePluginStream.mm, method deliverData. In this case, the plugin seems to be a Java VM. It also seems like jira.skype.net was using java plugin before the busy loop. I can not access this page to try to confirm this theory though.
Dimitris Apostolou
Comment 16 2009-02-22 15:05:43 PST
(In reply to comment #14) > When did it crash? Do you think this is related to CPU usage you reported? I left the high CPU incident occur and the client crashed by itself after about 5 minutes of high CPU usage.
Dimitris Apostolou
Comment 17 2009-06-22 01:02:34 PDT
Haven't seen this one lately. Closing.
Note You need to log in before you can comment on or make changes to this bug.