[Webkit-unassigned] [Bug 107929] New: [Qt]Non-blocking sockets don't get notified when network status is down in QtWebKit page reloading

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jan 25 02:42:37 PST 2013


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

           Summary: [Qt]Non-blocking sockets don't get notified when
                    network status is down in QtWebKit page reloading
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: Page Loading
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: chenzx at cn.fujitsu.com


Steps to reproduce this problem:

(1)Must use Linux, Windows has no problem(doesn't know why yet);
(2)Setup a local apache html page, use the below .htacces file:
    ExpiresActive On
    Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform" 
    Header set Pragma "no-cache"
  Also, ensure your test html page contains resources num > 6, (css, js, images, etc)
(3)Use Qt's demos/browser to access it in the normal way, then ```disable network```, do a reloading;
(4)You will observe that the loading procedure may hang sometimes (not always)

Reason I guess:
1、Qt-4.8.x use non-blocking sockets and seems to maintain a ```connection pool```;
2、When network status is down, there objects in connection pool may not be notified, they still think network is OK
3、So when page reloading, the read request from these non-blocking sockets gets no response, the GUI seems to hang.

Apply the patch of bug 106761, the GUI will get read timeout error in at most 30s, but this is not perfect —— better to display network connection error at once.

So, how to clear out the ```connection pool``` when do page reloading?

Also I know the normal F5 reloading may use data in cache(this seems to be a common spec for all modern browsers), If use Shift + F5, reloading should not use any cache, or any connection from the ```connection pool```. I doubt Qt code may not provide such mechanism, or somewhere needs a fix.

-- 
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