RESOLVED INVALID 162465
NetworkProcess is using 100% CPU on a specific website
https://bugs.webkit.org/show_bug.cgi?id=162465
Summary NetworkProcess is using 100% CPU on a specific website
Christian Stadelmann
Reported 2016-09-22 14:44:19 PDT
Created attachment 289602 [details] Backtrace from gdb attached to WebKitNetworkProcess Steps to reproduce: 1. open epiphany 2. browse to https://bodhi.fedoraproject.org/updates/FEDORA-2016-77ffa78abb 3. watch WebKitNetworkProcess What happens? 100% CPU load on one core, by WebKitNetworkProcess What should happen? No 100% CPU when just showing an ordinary page. Affected version: epiphany-3.20.3-1.fc24.x86_64 webkitgtk4-2.12.5-1.fc24.x86_64 libsoup-2.54.1-1.fc24.x86_64 gtk3-3.20.9-1.fc24.x86_64 Additional info: I attached gdb to WebKitNetworkProcess while being busy, then I created a backtrace: #0 0x00007ffff07ccbe4 in g_source_callback_get (cb_data=0x555556647f50, source=0x555556648cf0, func=0x7fffffffd930, data=0x7fffffffd938) at gmain.c:1574 #1 0x00007ffff07cf39c in g_main_context_find_source_by_user_data (context=0x555555588dd0, user_data=user_data@entry=0x555555580020) at gmain.c:2232 #2 0x00007fffefe49ed4 in soup_session_real_kick_queue (session=<optimized out>) at soup-session.c:2339 #3 0x00007fffefe4ef7b in message_completed (session=<optimized out>) at soup-session.c:2360 #4 0x00007fffefe4ef7b in message_completed (msg=<optimized out>, completion=SOUP_MESSAGE_IO_COMPLETE, user_data=0x555555b195a0) at soup-session.c:1586 #5 0x00007fffefe3d9a2 in soup_message_io_finished (msg=0x555555cff8a0 [SoupMessage]) at soup-message-io.c:183 #6 0x00007fffefe29223 in soup_client_input_stream_close_fn (stream=<optimized out>, cancellable=<optimized out>, error=<optimized out>) at soup-client-input-stream.c:135 #7 0x00007ffff0f49fe4 in g_input_stream_close (stream=0x555555be3960 [SoupClientInputStream], cancellable=cancellable@entry=0x0, error=error@entry=0x0) at ginputstream.c:511 #8 0x00007ffff6e3d308 in WebCore::readCallback(GObject*, GAsyncResult*, gpointer) (asyncResult=<optimized out>, data=0x7fffe1d3da20) at /usr/src/debug/webkitgtk-2.12.5/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1340 #9 0x00007ffff0f4a04a in async_ready_callback_wrapper (source_object=0x555555be3960 [SoupClientInputStream], res=0x555555a10de0, user_data=0x7fffe1d3da20) at ginputstream.c:532 #10 0x00007ffff0f711f3 in g_task_return_now (task=0x555555a10de0 [GTask]) at gtask.c:1107 #11 0x00007ffff0f71229 in complete_in_idle_cb (task=0x555555a10de0) at gtask.c:1121 #12 0x00007ffff07d06ba in g_main_context_dispatch (context=0x555555588dd0) at gmain.c:3154 #13 0x00007ffff07d06ba in g_main_context_dispatch (context=context@entry=0x555555588dd0) at gmain.c:3769 #14 0x00007ffff07d0a70 in g_main_context_iterate (context=0x555555588dd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3840 #15 0x00007ffff07d0d92 in g_main_loop_run (loop=0x555555c58590) at gmain.c:4034 #16 0x00007ffff5553770 in WTF::RunLoop::run() () at /usr/src/debug/webkitgtk-2.12.5/Source/WTF/wtf/glib/RunLoopGLib.cpp:94 #17 0x00007ffff5ff289d in WebKit::ChildProcessMain<WebKit::NetworkProcess, WebKit::NetworkProcessMain>(int, char**) (argc=<optimized out>, argv=0x7fffffffde28) at /usr/src/debug/webkitgtk-2.12.5/Source/WebKit2/Shared/unix/ChildProcessMain.h:61 #18 0x00007fffebcd6731 in __libc_start_main (main= 0x555555554c20 <main(int, char**)>, argc=2, argv=0x7fffffffde28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffde18) at ../csu/libc-start.c:289 #19 0x0000555555554c79 in _start () (more detailed version attached)
Attachments
Backtrace from gdb attached to WebKitNetworkProcess (50.75 KB, text/plain)
2016-09-22 14:44 PDT, Christian Stadelmann
no flags
MHTML file from this website (597.75 KB, application/x-mimearchive)
2016-09-22 14:50 PDT, Christian Stadelmann
no flags
Christian Stadelmann
Comment 1 2016-09-22 14:50:01 PDT
Created attachment 289606 [details] MHTML file from this website Please note that this website also breaks firefox, see https://bugzilla.redhat.com/show_bug.cgi?id=1378601 While trying to save the website I noticed the title is too long so it cannot be saved into a MHTML file without renaming. Opening the MHTML file with epiphany does NOT make this bug reappear. Reloading the page from the URL does, though.
David H. Gutteridge
Comment 2 2016-09-23 14:55:53 PDT
I can also reproduce this issue with WebKitGTK4 2.14.0 and Epiphany 3.20.4. The behaviour is similar, but after WebKitNetworkProcess stays at 100% for some minutes, it drops off, and WebKitWebProcess goes to 100% and stays there, at which point I can't scroll in that page anymore. (When WebKitNetworkProcess is running, I can scroll and view what's been rendered so far.) (I can also reproduce similar behaviour with both Safari 9.1.3 and 10.0 on El Capitan 10.11.6.)
Carlos Garcia Campos
Comment 3 2016-09-24 02:09:52 PDT
(In reply to comment #2) > I can also reproduce this issue with WebKitGTK4 2.14.0 and Epiphany 3.20.4. > The behaviour is similar, but after WebKitNetworkProcess stays at 100% for > some minutes, it drops off, and WebKitWebProcess goes to 100% and stays > there, at which point I can't scroll in that page anymore. (When > WebKitNetworkProcess is running, I can scroll and view what's been rendered > so far.) > > (I can also reproduce similar behaviour with both Safari 9.1.3 and 10.0 on > El Capitan 10.11.6.) It's not GTK+ specific then.
Chris Dumez
Comment 4 2016-09-24 09:15:56 PDT
Given that this happens with all browsers, I think it is safe to assume this is caused by bad content and not a specific bug in WebKit. The page seems to be generating a large amount of content and it keeps getting bigger and bigger. It causes a lot of network activity, a lot of CSS / HTML parsing and relayout.
Note You need to log in before you can comment on or make changes to this bug.