[Webkit-unassigned] [Bug 27629] New: Long Running requests block other resource requests

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jul 23 16:34:15 PDT 2009


https://bugs.webkit.org/show_bug.cgi?id=27629

           Summary: Long Running requests block other resource requests
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Macintosh
        OS/Version: Mac OS X 10.5
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: New Bugs
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: dstarke at gmail.com


Created an attachment (id=33391)
 --> (https://bugs.webkit.org/attachment.cgi?id=33391)
reduced test case

In some cases, a long request to the server (such as a comet style request) can
block other requests from being sent to the server for the duration of the long
request.

I have attached a zip file with a test case that uses Dojo and Persevere to
demonstrate the issue.

This code causes a request to be made to the server for the resource
"/channels".  The server will hold this connection open for 15 minutes. 
Following this request, a simple loop generates 10 more requests to the server
in rapid succession.  When I run this, I find that the last few requests never
complete until the "channels" request finally ends.  Opening up the resources
tab of the web inspector, the blocked requests show up in gray, as if they are
still in progress.  However, a traffic logging tool such as Wireshark confirms
that no request has actually been made to the server for these resources.

Although this example only has xhr requests as the obstructed resources, I have
also seen image requests (referenced from css, triggered from events like
hovers and other ui interactions) blocked by this issue.

I have observed this issue consistently in Safari and in recent nightly builds
of Webkit.  For comparison, the issue does not occur in Firefox, which loads
all 10 resource requests.

To run the test case, you will need a copy of the Persevere server, which can
be obtained at http://code.google.com/p/persevere-framework/downloads/list or
from www.persvr.org.  Copy the test.html file and the js directory from the
attached archive into the base directory of your Persevere server, start the
server, and then point the browser at the test.html file.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list