Bug 15825 - [GTK] curl - slow dns causing hangs
: [GTK] curl - slow dns causing hangs
Status: RESOLVED FIXED
: WebKit
WebKit Gtk
: 523.x (Safari 3)
: All Linux
: P2 Normal
Assigned To:
:
: Curl, Gtk
:
:
  Show dependency treegraph
 
Reported: 2007-11-04 00:18 PST by
Modified: 2007-12-09 13:53 PST (History)


Attachments
limit to 5 connections globally (1.83 KB, patch)
2007-12-04 15:02 PST, Luca Bruno
no flags Review Patch | Details | Formatted Diff | Diff
fix curl (2.01 KB, patch)
2007-12-05 01:24 PST, Luca Bruno
no flags Review Patch | Details | Formatted Diff | Diff
fix curl (2.67 KB, patch)
2007-12-05 01:29 PST, Luca Bruno
no flags Review Patch | Details | Formatted Diff | Diff
put jobs in the right queue (7.47 KB, patch)
2007-12-08 13:18 PST, Luca Bruno
alp: review-
Review Patch | Details | Formatted Diff | Diff
do not crash on job cancel (7.54 KB, patch)
2007-12-09 00:59 PST, Luca Bruno
no flags Review Patch | Details | Formatted Diff | Diff
alternative using vectors (5.28 KB, patch)
2007-12-09 07:19 PST, Luca Bruno
alp: review+
Review Patch | Details | Formatted Diff | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2007-11-04 00:18:01 PST
Loading this url
http://www.osnews.com/story.php?news_id=18873
------- Comment #1 From 2007-12-04 15:02:59 PST -------
Created an attachment (id=17706) [details]
limit to 5 connections globally

The problem is that there's no way to limit curl to a specific number of connections.
This patch solves the problem.

However, we need to work more on that, because the limitation is globally and not per domain.

I suggest to land this patch which is useful for other purposes (for example working on wysiwyg, which are really heavy if the issue remains).
------- Comment #2 From 2007-12-05 01:24:18 PST -------
Created an attachment (id=17713) [details]
fix curl

I tested the patch by browsing several websites that before had this problem due to bad cURL management.

The new patch is complete of ChangeLog. I also added a FIXME to create a separate stack of jobs per domain.
------- Comment #3 From 2007-12-05 01:29:08 PST -------
Created an attachment (id=17714) [details]
fix curl

forgot header file
------- Comment #4 From 2007-12-08 13:18:21 PST -------
Created an attachment (id=17789) [details]
put jobs in the right queue

Using a list, all requests were satisfied with the wrong order.
Now a queue class has been added to do this work.
------- Comment #5 From 2007-12-08 17:58:26 PST -------
(From update of attachment 17789 [details])
So, this solves a lot of problems. Pages load faster, fewer resources used.

r- though due to the crasher when jobs are cancelled.
------- Comment #6 From 2007-12-09 00:59:49 PST -------
Created an attachment (id=17799) [details]
do not crash on job cancel

The previous patch crashed when a job was canceled. This one instead has the same behavior of the original code.
Notice how using the queue most of the code in the manager has been collapsed and therefore cleaned.

Still missing a separate stack of connections per domain, but this is another bug yet.
------- Comment #7 From 2007-12-09 07:19:59 PST -------
Created an attachment (id=17804) [details]
alternative using vectors
------- Comment #8 From 2007-12-09 13:46:12 PST -------
(From update of attachment 17799 [details])
Clearing review flag in favour of the Vector-based patch.
------- Comment #9 From 2007-12-09 13:47:49 PST -------
(From update of attachment 17804 [details])
r=me with the changes to the positioning of m_runningJobs increment/decrement we discussed.
------- Comment #10 From 2007-12-09 13:53:17 PST -------
Landed in r28573.