Colin Walters 0f8bad0
From 69e00fc506e6a6d368a6e276eeb376e3d88b2fc7 Mon Sep 17 00:00:00 2001
Colin Walters 0f8bad0
From: Colin Walters <walters@verbum.org>
Colin Walters 0f8bad0
Date: Mon, 27 Nov 2017 11:05:07 -0500
Colin Walters 0f8bad0
Subject: [PATCH] fetcher/curl: Stop using CURLOPT_LOW_SPEED_TIME/_LIMIT
Colin Walters 0f8bad0
Colin Walters 0f8bad0
They don't play nicely currently with HTTP2 where we may
Colin Walters 0f8bad0
have lots of requests queued.
Colin Walters 0f8bad0
Colin Walters 0f8bad0
https://github.com/ostreedev/ostree/issues/878#issuecomment-347228854
Colin Walters 0f8bad0
Colin Walters 0f8bad0
In practice anyways I think issues here are better solved on a higher level -
Colin Walters 0f8bad0
e.g. apps today can use an overall timeout on pulls and if they exceed the limit
Colin Walters 0f8bad0
set the cancellable.
Colin Walters 0f8bad0
Colin Walters 0f8bad0
Closes: #1349
Colin Walters 0f8bad0
Approved by: alexlarsson
Colin Walters 0f8bad0
---
Colin Walters 0f8bad0
 src/libostree/ostree-fetcher-curl.c | 9 +++++++--
Colin Walters 0f8bad0
 1 file changed, 7 insertions(+), 2 deletions(-)
Colin Walters 0f8bad0
Colin Walters 0f8bad0
diff --git a/src/libostree/ostree-fetcher-curl.c b/src/libostree/ostree-fetcher-curl.c
Colin Walters 0f8bad0
index 8a23b163..58835529 100644
Colin Walters 0f8bad0
--- a/src/libostree/ostree-fetcher-curl.c
Colin Walters 0f8bad0
+++ b/src/libostree/ostree-fetcher-curl.c
Colin Walters 0f8bad0
@@ -788,8 +788,13 @@ initiate_next_curl_request (FetcherRequest *req,
Colin Walters 0f8bad0
   curl_easy_setopt (req->easy, CURLOPT_PROGRESSFUNCTION, prog_cb);
Colin Walters 0f8bad0
   curl_easy_setopt (req->easy, CURLOPT_FOLLOWLOCATION, 1L);
Colin Walters 0f8bad0
   curl_easy_setopt (req->easy, CURLOPT_CONNECTTIMEOUT, 30L);
Colin Walters 0f8bad0
-  curl_easy_setopt (req->easy, CURLOPT_LOW_SPEED_LIMIT, 1L);
Colin Walters 0f8bad0
-  curl_easy_setopt (req->easy, CURLOPT_LOW_SPEED_TIME, 30L);
Colin Walters 0f8bad0
+  /* We used to set CURLOPT_LOW_SPEED_LIMIT and CURLOPT_LOW_SPEED_TIME
Colin Walters 0f8bad0
+   * here, but see https://github.com/ostreedev/ostree/issues/878#issuecomment-347228854
Colin Walters 0f8bad0
+   * basically those options don't play well with HTTP2 at the moment
Colin Walters 0f8bad0
+   * where we can have lots of outstanding requests.  Further,
Colin Walters 0f8bad0
+   * we could implement that functionality at a higher level
Colin Walters 0f8bad0
+   * more consistently too.
Colin Walters 0f8bad0
+   */
Colin Walters 0f8bad0
 
Colin Walters 0f8bad0
   /* closure bindings -> task */
Colin Walters 0f8bad0
   curl_easy_setopt (req->easy, CURLOPT_PRIVATE, task);
Colin Walters 0f8bad0
-- 
Colin Walters 0f8bad0
2.14.2
Colin Walters 0f8bad0