From f175b5a20f334d0914fbe52f1e8d880e3398dc50 Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Mon, 26 Nov 2012 16:19:48 -0500 Subject: BUG-768 Texture fetches hit caps throttle and need more retries. Bumped the default retry limit up from 5 to 8 which gives up to 15 seconds more dwell time should the viewer get a 503 or other recoverable error on access. --- indra/llcorehttp/_httpinternal.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'indra/llcorehttp') diff --git a/indra/llcorehttp/_httpinternal.h b/indra/llcorehttp/_httpinternal.h index 465e2036b3..14f744a9f1 100644 --- a/indra/llcorehttp/_httpinternal.h +++ b/indra/llcorehttp/_httpinternal.h @@ -111,7 +111,15 @@ const int HTTP_TRACE_MIN = HTTP_TRACE_OFF; const int HTTP_TRACE_MAX = HTTP_TRACE_CURL_BODIES; // Request retry limits -const int HTTP_RETRY_COUNT_DEFAULT = 5; +// +// At a minimum, retries need to extend past any throttling +// window we're expecting from central services. In the case +// of Linden services running through the caps routers, there's +// a five-second or so window for throttling with some spillover. +// We want to span a few windows to allow transport to slow +// after onset of the throttles and then recover without a final +// failure. Other systems may need other constants. +const int HTTP_RETRY_COUNT_DEFAULT = 8; const int HTTP_RETRY_COUNT_MIN = 0; const int HTTP_RETRY_COUNT_MAX = 100; -- cgit v1.2.3 From 4d65c754d6e20906770d8c84abf00b2dd7645d80 Mon Sep 17 00:00:00 2001 From: Monty Brandenberg Date: Tue, 27 Nov 2012 18:09:01 +0000 Subject: Tweak the example program (used as a performance tester) so that it will run with higher connection concurrencies. I'm using this to test the listener queue length reporting on apaches and everything is consistent and as expected with this change (stuck at eight before). --- indra/llcorehttp/examples/http_texture_load.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'indra/llcorehttp') diff --git a/indra/llcorehttp/examples/http_texture_load.cpp b/indra/llcorehttp/examples/http_texture_load.cpp index 998dc9240b..40ad4f047d 100644 --- a/indra/llcorehttp/examples/http_texture_load.cpp +++ b/indra/llcorehttp/examples/http_texture_load.cpp @@ -153,6 +153,7 @@ public: // int main(int argc, char** argv) { + LLCore::HttpStatus status; bool do_random(false); bool do_verbose(false); @@ -215,6 +216,9 @@ int main(int argc, char** argv) // Initialization init_curl(); LLCore::HttpRequest::createService(); + LLCore::HttpRequest::setPolicyClassOption(LLCore::HttpRequest::DEFAULT_POLICY_ID, + LLCore::HttpRequest::CP_CONNECTION_LIMIT, + concurrency_limit); LLCore::HttpRequest::startThread(); // Get service point @@ -228,7 +232,7 @@ int main(int argc, char** argv) ws.loadTextureUuids(uuids); ws.mRandomRange = do_random; ws.mVerbose = do_verbose; - ws.mMaxConcurrency = concurrency_limit; + ws.mMaxConcurrency = 100; if (! ws.mTextures.size()) { -- cgit v1.2.3