Ok I captured a few screenshots to illustrate what I see and some backtraces as well when I push file descriptors well past starvation. The test I run is always the same. I open a session which in the xxxterm browser means "an X number of tabs with links in them". The links are: https://www.cyphertite.com/ http://arstechnica.com/ http://www.wired.com/ http://www.huffingtonpost.com/ http://slashdot.org/ http://www.physorg.com/ http://sportsillustrated.cnn.com/ http://espn.go.com/
about half were rendered correctly and half didn't. Missing CSS and pictures: http://opensource.conformal.com/snapshots/tmp/arstechnica.png http://opensource.conformal.com/snapshots/tmp/cyphertite.png http://opensource.conformal.com/snapshots/tmp/slashdot.png Can't resolve hostname: http://opensource.conformal.com/snapshots/tmp/cnnsi.png http://opensource.conformal.com/snapshots/tmp/espn.png Repeating the test of opening 8 tabs at once often leads to crashes as well. For example: #0 0x00000002110c8d7b in WebCore::FontFallbackList::determinePitch () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #1 0x00000002111804be in WebCore::RenderBlock::findNextLineBreak () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #2 0x0000000211181c4c in WebCore::RenderBlock::layoutInlineChildren () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #3 0x0000000211170bf8 in WebCore::RenderBlock::layoutBlock () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #4 0x0000000211159fbd in WebCore::RenderBlock::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #5 0x000000021116e552 in WebCore::RenderBlock::layoutBlockChild () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #6 0x00000002111701b8 in WebCore::RenderBlock::layoutBlockChildren () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #7 0x00000002111711d6 in WebCore::RenderBlock::layoutBlock () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #8 0x0000000211159fbd in WebCore::RenderBlock::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #9 0x000000021116e552 in WebCore::RenderBlock::layoutBlockChild () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #10 0x00000002111701b8 in WebCore::RenderBlock::layoutBlockChildren () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #11 0x00000002111711d6 in WebCore::RenderBlock::layoutBlock () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #12 0x0000000211159fbd in WebCore::RenderBlock::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #13 0x000000021116e552 in WebCore::RenderBlock::layoutBlockChild () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #14 0x00000002111701b8 in WebCore::RenderBlock::layoutBlockChildren () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #15 0x00000002111711d6 in WebCore::RenderBlock::layoutBlock () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #16 0x0000000211159fbd in WebCore::RenderBlock::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #17 0x000000021116e552 in WebCore::RenderBlock::layoutBlockChild () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #18 0x00000002111701b8 in WebCore::RenderBlock::layoutBlockChildren () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #19 0x00000002111711d6 in WebCore::RenderBlock::layoutBlock () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #20 0x0000000211159fbd in WebCore::RenderBlock::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #21 0x000000021116e552 in WebCore::RenderBlock::layoutBlockChild () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #22 0x00000002111701b8 in WebCore::RenderBlock::layoutBlockChildren () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #23 0x00000002111711d6 in WebCore::RenderBlock::layoutBlock () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #24 0x0000000211159fbd in WebCore::RenderBlock::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #25 0x000000021116e552 in WebCore::RenderBlock::layoutBlockChild () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #26 0x00000002111701b8 in WebCore::RenderBlock::layoutBlockChildren () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #27 0x00000002111711d6 in WebCore::RenderBlock::layoutBlock () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #28 0x0000000211159fbd in WebCore::RenderBlock::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #29 0x000000021116e552 in WebCore::RenderBlock::layoutBlockChild () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #30 0x00000002111701b8 in WebCore::RenderBlock::layoutBlockChildren () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #31 0x00000002111711d6 in WebCore::RenderBlock::layoutBlock () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #32 0x0000000211159fbd in WebCore::RenderBlock::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #33 0x000000021116e552 in WebCore::RenderBlock::layoutBlockChild () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #34 0x00000002111701b8 in WebCore::RenderBlock::layoutBlockChildren () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #35 0x00000002111711d6 in WebCore::RenderBlock::layoutBlock () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #36 0x0000000211159fbd in WebCore::RenderBlock::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #37 0x000000021116e552 in WebCore::RenderBlock::layoutBlockChild () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #38 0x00000002111701b8 in WebCore::RenderBlock::layoutBlockChildren () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #39 0x00000002111711d6 in WebCore::RenderBlock::layoutBlock () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #40 0x0000000211159fbd in WebCore::RenderBlock::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #41 0x000000021116e552 in WebCore::RenderBlock::layoutBlockChild () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #42 0x00000002111701b8 in WebCore::RenderBlock::layoutBlockChildren () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #43 0x00000002111711d6 in WebCore::RenderBlock::layoutBlock () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #44 0x0000000211159fbd in WebCore::RenderBlock::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #45 0x0000000211225d6f in WebCore::RenderView::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #46 0x000000021108eeff in WebCore::FrameView::layout () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #47 0x000000021112420a in WebCore::ThreadTimers::sharedTimerFiredInternal () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #48 0x0000000210b04772 in WebCore::timeout_cb () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #49 0x00000002042e2b7b in g_source_get_time () from /usr/local/lib/libglib-2.0.so.2800.0 #50 0x00000002042e2173 in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.2800.0 #51 0x00000002042e6152 in g_main_context_prepare () from /usr/local/lib/libglib-2.0.so.2800.0 #52 0x00000002042e6545 in g_main_loop_run () from /usr/local/lib/libglib-2.0.so.2800.0 #53 0x00000002122efa83 in gtk_main () from /usr/local/lib/libgtk-x11-2.0.so.2400.0 #54 0x0000000000417dc6 in main (argc=0, argv=0x7f7fffff2608) at /home/marco/xxxterm/xxxterm.c:8388 and #0 0x0000000211e1668c in WebCore::RenderImage::setImageSizeForAltText () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #1 0x0000000211e17399 in WebCore::RenderImage::imageChanged () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #2 0x0000000211c34acf in WebCore::CachedImage::notifyObservers () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #3 0x0000000211c350b5 in WebCore::CachedImage::error () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #4 0x0000000211c3e371 in WebCore::CachedResourceRequest::didFail () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #5 0x0000000211c98c8f in WebCore::SubresourceLoader::didFail () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #6 0x000000021176fdb0 in WebCore::sendRequestCallback () from /usr/local/lib/libwebkitgtk-1.0.so.0.1 #7 0x00000002041d2bb6 in sent_async () from /usr/local/lib/libsoup-2.4.so.3.0 #8 0x00000002041c587b in wrapper_callback () from /usr/local/lib/libsoup-2.4.so.3.0 #9 0x00000002041c5a0e in send_async_finished () from /usr/local/lib/libsoup-2.4.so.3.0 #10 0x00000002064c106f in g_closure_invoke () from /usr/local/lib/libgobject-2.0.so.2800.0 #11 0x00000002064d81e1 in g_signal_handlers_block_matched () from /usr/local/lib/libgobject-2.0.so.2800.0 #12 0x00000002064da0f5 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.2800.0 #13 0x00000002064da4f3 in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.2800.0 #14 0x00000002041d90e0 in process_queue_item () from /usr/local/lib/libsoup-2.4.so.3.0 #15 0x00000002041d940e in run_queue () from /usr/local/lib/libsoup-2.4.so.3.0 #16 0x00000002041d94b3 in idle_run_queue () from /usr/local/lib/libsoup-2.4.so.3.0 #17 0x0000000201b58173 in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.2800.0 #18 0x0000000201b5c152 in g_main_context_prepare () from /usr/local/lib/libglib-2.0.so.2800.0 #19 0x0000000201b5c545 in g_main_loop_run () from /usr/local/lib/libglib-2.0.so.2800.0 #20 0x0000000202345a83 in gtk_main () from /usr/local/lib/libgtk-x11-2.0.so.2400.0 #21 0x0000000000417dc6 in main (argc=0, argv=0x7f7ffffdb128) at /home/marco/xxxterm/xxxterm.c:8388 As one can see these crashes are all within webkit. This is with the webkit 1.4.1 snapshot with web sockets enabled. By default xxxterm sets max-conns to 25 and max-conns-per-host to 5. When webkit doesn't crash I see as many as 119 connections to port 80 in various states (TIME_WAIT, ESTABLISHED, CLOSED_WAIT, SYN_SENT etc). After a while the connections drop to 47 and are all in ESTABLISHED_STATE. This number is obviously much higher than the limit that is set to 25. With webit 1.2.7 I don't see this behavior. I setup a rig to see if I can narrow it down a bit more but would not mind some hints if there is something obvious that I am missing. /marco _______________________________________________ webkit-gtk mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/webkit-gtk
