summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2015-01-13 17:36:36 -0500
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2015-01-13 17:36:36 -0500
commitae6eef4b83d7770e6f35cf30f2f1dfcb07e4655a (patch)
tree2af2ed3d69e24a339626a3e5ad40789174772629
parentd5ab47b1bc9eac98c1f443fa965a91a8f2cf0af7 (diff)
parentfad02b30ce61a38007c5cd450cbdd2e09464888d (diff)
merge
-rwxr-xr-x.hgtags1
-rwxr-xr-xindra/llcorehttp/_httpoprequest.cpp17
-rw-r--r--indra/newview/VIEWER_VERSION.txt2
3 files changed, 18 insertions, 2 deletions
diff --git a/.hgtags b/.hgtags
index a9ab8061d3..81248f02a7 100755
--- a/.hgtags
+++ b/.hgtags
@@ -496,3 +496,4 @@ bcc2770e21c125e0bab59141c51db9145aec068d 3.7.17-release
9ecab4b0c7d8614767724a3422d3c1dca6bd4e4f 3.7.21-release
bc61801f614022c920cb5c3df1d7d67a9561ce1f 3.7.22-release
3be800e1afad9615442159e388d6d137be7b951e 3.7.23-release
+d3d0101e980ec95043e0af9b7903045d3bc447e4 3.7.24-release
diff --git a/indra/llcorehttp/_httpoprequest.cpp b/indra/llcorehttp/_httpoprequest.cpp
index fbbb1614fb..7482a89dac 100755
--- a/indra/llcorehttp/_httpoprequest.cpp
+++ b/indra/llcorehttp/_httpoprequest.cpp
@@ -623,8 +623,23 @@ HttpStatus HttpOpRequest::prepareRequest(HttpService * service)
// a handwave but bump the transfer timeout up by the pipelining
// depth to give some room.
//
+ // BUG-7698, BUG-7688, BUG-7694 (others). Scylla and Charybdis
+ // situation. Operating against a CDN having service issues may
+ // lead to requests stalling for an arbitrarily long time with only
+ // the CURLOPT_TIMEOUT value leading to a closed connection. Sadly
+ // for pipelining, libcurl (7.39.0 and earlier, at minimum) starts
+ // the clock on this value as soon as a request is started down
+ // the wire. We want a short value to recover and retry from the
+ // CDN. We need a long value to safely deal with a succession of
+ // piled-up pipelined requests.
+ //
// *TODO: Find a better scheme than timeouts to guarantee liveness.
- xfer_timeout *= cpolicy.mPipelining;
+ // Progress on the connection is what we really want, not timeouts.
+ // But we don't have access to that and the request progress indicators
+ // (various libcurl callbacks) have the same problem TIMEOUT does.
+ //
+ // xfer_timeout *= cpolicy.mPipelining;
+ xfer_timeout *= 2L;
}
// *DEBUG: Enable following override for timeout handling and "[curl:bugs] #1420" tests
// xfer_timeout = 1L;
diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt
index f36181278b..c282746153 100644
--- a/indra/newview/VIEWER_VERSION.txt
+++ b/indra/newview/VIEWER_VERSION.txt
@@ -1 +1 @@
-3.7.24
+3.7.25